Для реализации неотменяемой корутины можно использовать контекст NonCancellable.
kotlin
Использование NonCancellable полезно для выполнения завершающих операций, таких как сохранение данных или освобождение ресурсов, когда корутина была отменена.
Важно помнить, что NonCancellable делает корутину нечувствительной к отмене из контекста, но она может все равно быть отменена при закрытии виртуальной машины или в других крайних случаях. Также, если внутри withContext(NonCancellable) вызывается приостанавливающая функция, которая сама проверяет на отмену (например, delay), она может выбросить CancellationException. Поэтому рекомендуется использовать try-catch-finally для обработки таких ситуаций.