Injectable time source. Everything time-dependent in the engine (backoff,
lease expiry, rate windows, await deadlines, cron slots) reads through this,
so tests advance a Belay.Clock.Sim instead of sleeping.
Summary
Callbacks
@callback now(term()) :: DateTime.t()