Implement an event loop without GLib.
No caller needs this. Fixes use-after-free after returning from Client::OnTimeout().