Fixed usage of incorrect times when comparing against cron patterns.

It eluded my initial testing that the timing used to compare with cron patterns was from before each threadDelay occurred instead of after. This caused timings in some cases to miss their first hour of execution. Additionally, since we can calculate what the time will be after a threadDelay, we can eliminate redundant calls to `getCurrentTime`.