Все короутины (функции использующие async/await) должны выполняться в eventloop. Именно это и указано в варнинге, что eventloop не был запущен и короутина не была вызвана.
Запуск короутины можно сделать так:
asyncio.run(caller())
Этот вызов нужно сделать для основной функции где находятся все асинхронные вызовы.