I'm less sure about the other aspects of the backend, such as timed events. The run loop has a timer facility, which I think can be adapted to handle call_outs in a pretty straightforward manner. What else do I need to think about if a call to Pike.Backend->`()() is no longer being made?
Grubba is the one who knows this bit best, but afaik you're ok if you make sure the wakeup pipe is included, and set a suitable timeout event from the call out list (see low_backend_once_setup).