Sleeping for exactly the cooldown may be a little too precise (accounting network latency, policy execution slowness, etc.)  Would it make sense to sleep for slightly more than the cooldown to be safe?  Maybe 1.5 or 2 *cooldown?