Low-level primitives for finer-grained control of coroutines.
Use this function to start coroutine in a cancellable way, so that it can be cancelled while waiting to be dispatched.