Как в новом потоке запустить асинхронную функцию?
Есть не предположение, а уверенность, что смешивать многопоточность с асинхронностью - плохая идея и не нужно почти никогда.
Вот все решения которые пришли в голову от простого и правильного к нетипичному.

Не использовать новые потоки, потому что код и так асинхронный
Сделать функцию aaa синхронной - проблема с запуском нового потока уйдет
Если aaa невозможно изменить - нужно сделать обертку в виде синхронной функции (или декоратора), в который создать новый eventloop (предположим используется asyncio)

def wrapper(*args, **kwargs):
    loop = asyncio.new_event_loop()
    asyncio.set_event_loop(loop)
    loop.run_until_complete(aaa(*args, **kwargs))
    loop.close()