The sleeping is pretty clever, but presumably vulnerable to false positives if the queries are slow anyways. I wonder if they go the extra mile and time the load time with and without the attempted injection
As a bonus, your apparently vulnerable service would be incredibly slow, so any iterative testing would be incredibly slow.
(Granted, it's probably still too much overhead, just a thought.)
You come to a fork in the road. There are three statues, you need to ask them all one question and figure out which way is the right way to go.
One statue always lies, one always tells the truth and one kills people who ask convoluted questions.
https://github.com/andresriancho/w3af/blob/fb345a5/w3af/core...
This one sends the payload reversed as a test to see if the delay is due to the SQLi attempt