Prevent Whitehall::Wait from oversleeping.

This was sleeping for too long because `time_to_sleep` wasn't being updated on each loop iteration, and `time_slept` was being compared with `<` not `<=`.  The result was that most of the time it would sleep twice
as long as it was expected to, resulting in a c. 2 minute delay in scheduled publishing.