It's usually needed earlier than the message itself. And may even be used
to skip formatting altogether, with `msg_fun()` facility in Erlang
logger.
Simplify event handler interface which should make this module more
usable down the line.
Also use monotonic timestamps when measuring time intervals.