Kotlin Coroutines базируются в своей работе на Structured Concurrency, но если выбрать неправильный CoroutineScope легко может выйти ситуация, что ваша операция не выполнится. Например, сообщение не отправится на сервер или данные не будут обновлены.
В статье разбирается как сделать чтобы все было хорошо с помощью специальной Job - NonCancellable