Преобразование функции с callback в suspend‑функцию
Приведённый suspendCoroutine превращает одноразовый callback в приостанавливаемое ожидание, а не в блокировку потока. Для отменяемого сетевого запроса предпочтительнее suspendCancellableCoroutine.
Читать ответ