A coroutine catches CancellationException, logs it, and does NOT rethrow, then continues doing more suspending work. What goes wrong at the structured-concurrency level?
launch {
try {
delay(1000)
} catch (e: CancellationException) {
log(e) // swallowed, not rethrown
}
doMoreSuspendingWork() // <-- what happens here?
}