Classes

Keep transfers and their cancellation callbacks within their owning coroutine.

Drain each coroutine's callbacks independently and cancel unfinished work at exit, preserving the original queue outside coroutines.