Add `coroutine::CancelHandle` to catch coroutine cancellation