suppress: add time leeway to racy tests
suppress: add time leeway to racy tests

In the past, f would be scheduled to fire at least suppressTime apart because
WaitFor scheduled sleeps, meaning the

if last.IsZero() || now.Sub(last) >= suppressTime

would always be true. That is, now.Sub(last) would always be at least
suppressTime.

Now, with the goroutine staying alive until count is zero, and with f being
called via a timer, f does not have to be called at least suppressTime apart.
The timer could take 101ms on one loop and be fired next at 99ms,
autocorrecting itself. The now.Sub(last) >= suppressTime check will fail in
this racy case.

This adds 5ms of leeway and also removes race conditions on printing variables.

jmptrader/go-utils-1,fastly/go-utils