- clock is needed because timestamps need to be provided now
- explicit types are good anyway
- have at least one helper to emit the signal with optional
tracer/logger/metrics_emitter
- easier logger with `log` and `logf`
As soon as we start running this in multible system threads, the race to
trigger the globals `stop` and `iterations` makes the signal emissions
non-deterministic, which makes the test kind of meaningless. This change
should make them determinstic.