Минус KotlinJS компилятора - он компилит суспенд функции в хитрые стейт машины с корутиновым контекстом. То есть по сути 1 к 1 как это в котле.
РАБОТАЕТ, ДА. Но со стороны ЖС это не евейтабл промизы и надо прокидывать корутиновый контекст в каждую такую функцию (даже если ты не писал там аргументов)
Сразу скалой пахнуло с прокидыванием екзекутора на каждый чих.
Но это лечится просто:
Надо платформоспецифичный враппер нарисовать, который будет отдавать НЕ суспенд функции на те же вызовы через корутиновый скоуп который возвращает нативные жс промизы. Просто бойлерплейт