Автоматизация c назначение нового события l oop происходит только в главном потоке. Из источника asyncio DefaultEventLoopPolicy в events.py
def get_event_loop(self):
"""Get the event loop for the current context.
Returns an instance of EventLoop or raises an exception.
"""
if (self._local._loop is None and
not self._local._set_called and
isinstance(threading.current_thread(), threading._MainThread)):
self.set_event_loop(self.new_event_loop())
if self._local._loop is None:
raise RuntimeError('There is no current event loop in thread %r.'
% threading.current_thread().name)
return self._local._loop
Так что для неосновного потока необходимо вручную установить событие l oop с помощью asyncio.set_event_loop(asyncio.new_event_loop())