Ответ
launch - запускает корутину без возврата результата.
async - запускает корутину с возможностью получения результата через await().
cancel() - отменяет все дочерние корутины.
coroutineContext - возвращает контекст корутины.
Пример:
val scope = CoroutineScope(Dispatchers.IO)
val job = scope.launch { /* работа */ }
val deferred = scope.async { 42 }
scope.cancel() // отмена всех корутин