У чего можно вызвать этот asPromise если метод что-то ждет, и падает если туда ничего не передать, как минимум это не удобно для наших клиентов, так как им придется передавать что-то
Я не понял ничего про передать. Promise и Deferred делают примерно одно и то же за исключением тонкостей со structured concurrency и отменой. Если вы создаете асинхронные штуки со стороны котлин, заорачиваете их в промисы при экспорте. Если со стороны JS, конвертите промисы в deferred опять же на стороне котлин