Use monotonic time for events

This avoids possible problems when wall-clock time is adjusted. Also, it's needed on x86 because monotonic time and wall-clock time aren't the same.

I noticed this in the trace viewer; sleeps of < 100ms were taking exactly 100ms. The reason is that we asked to sleep for much too long, but the 100ms timer interrupt would wake us up anyway.

Will add change log entry when other PRs have been applied, or we'll just get conflicts.
I would rather name that. There's little chance when you read a piece of code using this without having the full interface in mind that you won't have to go back to documentation to understand the difference between `-` and `--`. I'd suggest `span` or `interval`.