I went to look at the sleep function and found this comment at http://www.php.net/manual/en/function.sleep.php
It seems, that 'max_execution_time' is based on ALARM signal, thus sleep() breaks its functionality!
So, it seems like the set_time_limit and sleep work on different timers.
It does work, I had a script that imported a CSV file into a database, took over an hour to run... so I used set_time_limit for 5 minutes, and it allowed the script to run.
See, I think that the set_time_limit only counts time ACTUALLY executing PHP code, so your sleep(1) probably isn't even counted. Maybe someone can verifiy this.