In Kotlin, why doesn’t cancelling work as expected when there is no suspension point in the coroutine? Consider this code in Kotlin: