I think it avoids having to launch coroutines on the event loop threads yourself, instead it makes the coroutine context that corresponds to the event loop and launches you into that context already... so only if you have something blocking or async to do you would either
launch
a new coroutine with a worker thread pool or change the context using
run