Add some backoff to the scheduler to prevent tight-looping.

I don't know the scheduler logic well - it looks like this will sleep() whenever there is an error, even if there is more viable work to do in the queue?