If one place says that they want to sleep 15 seconds and another 20 seconds, if you do it wrong, you might wind up waiting close to 35 seconds for the 20 second people (because you're waking up every 15 seconds, you woke up and it is not yet time for the 20 second people, you slept and it is now way late).
I'd be tempted to solve this problem in a really cheesy way. For instance lose the "sleep/wake" logic entirely - just set a bunch of cron jobs that have a specified email address. And have an automated job that monitors that email address and will notify you in turn if errors happen too fast.
Your sweep utility becomes simpler. Your notification utility is also straightforward. And the "too many errors" logic now can apply for a variety of kinds of programs - not just this one kind of sweep. Besides it is now easy to tweak this so that one machine is monitoring sweeps that might be done on several different machines. And a final bonus - you don't have to write most of the code since the heavy lifting gets pushed to cron and email.
Cheers,
Ben