Unavoidable memory leak when using coroutines

The coroutine doesn’t actually refer to the activity, unless explicitly so. The cancellation mechanism only requires the activity to hold a reference to the coroutine, so it can lower the isActive flag on it.