Let us specify time to run when retasking

This is handy during testing to set it at `now` or `-1` to run immediately
instead of in a few minutes. It'll probably also be useful in the future to
spread out a big retask over time if we want to.
Record task delay stats

Whenever a task is run, we'll compare `Date.now` to `task.at` and see how long
ago (or in the future) the tasks was intended to run. I looked at logging
rollups per service and overall so we can see trends there, but it meant sending
a lot of duplicate, highly variable data, so I think it's better that we do that
mixing on the analysis side.

This changes the semantics of the `Scanning tasks` log line so that positive
numbers are higher delays (the task ran after its scheduled time). This makes
more sense to graph than how far ahead of schedule we're running something, and
we shouldn't expect running something ahead of schedule (now a negative number)
to be the common case.