Add a randomized start before running CheckMonitors.

We have situations where systems use many checks (dozens to hundreds) with fairly long intervals (say, every 60s).  Starting them all at the same time leads to undesirable spikes in resource utilization.  This patch randomly staggers the start time of CheckMonitors to avoid this.  It should address our issue without altering behavior much in the common case.
Actually, `WaitForResult` is probably not necessary here, but let's definitely use sub-second values for the interval and sleep time.