This would enable fixing #318 and would make us support `conn.async_run(cfg, asio::cancel_after(10s))` for free.