Kotlin coroutine no espera a ser hecho

Tengo un proyecto henetworkingado donde quiero usar corutinas cuando me pongo en contacto con el backend. El backend ha sido manejado por un sdk entregado por Hybris. Utiliza volea, por ejemplo, y con algunas devoluciones de llamada. Lo que quiero es ajustar esas devoluciones de llamada con coroutine. Pero el problema que tengo es que la coroutine no espera a ser ejecutada, comienza la coroutine, y continúa con las siguientes líneas, y el método arroja un valor, y mucho después termina la corutina. Mi código:

suspend fun ServiceHelper.getList(): ListOfWishes { return suspendCancellableCoroutine { continuation -> getAllLists(object : ResponseReceiver<ListOfWishes> { override fun onResponse(response: Response<ListOfWishes>?) { continuation.resume(response?.data!!) } override fun onError(response: Response<ErrorList>?) { val throwable = Throwable(Util.getFirstErrorSafe(response?.data)) continuation.resumeWithException(throwable) } }, RequestUtils.generateUniqueRequestId(), false, null, object : OnRequestListener { override fun beforeRequest() {} override fun afterRequestBeforeResponse() {} override fun afterRequest(isDataSynced: Boolean) {} }) } } 

El método de ayuda:

 suspend fun ServiceHelper.wishLists(): Defernetworking<ListOfWishes> { return async(CommonPool){ getWishList() } } 

Y donde se llama coroutine:

  fun getUpdatedLists(): ListOfWishes?{ val context = Injector.getContext() val serviceHelper = Util.getContentServiceHelper(context) var list = ListOfWishLists() launch(Android){ try { list = serviceHelper.wishLists().await() }catch (ex: Exception){ Timber.d("Error: $ex") } } return list 

Entonces, en lugar de esperar que serviceHelper.wishLists().await() termine, devuelve la list. También he intentado hacer que el método devuelva un runBlocking{} , pero eso solo bloquea el hilo de UI y no finaliza la coroutine.