Вам нужно вынести вычисление из event loop в отдельный процесс. Какой механизм помешает этому коду передать функцию исполнителю?
import asyncio
from concurrent.futures import ProcessPoolExecutor
async def main():
def square(x):
return x * x
loop = asyncio.get_running_loop()
with ProcessPoolExecutor() as pool:
result = await loop.run_in_executor(pool, square, 3)
print(result)
if __name__ == "__main__":
asyncio.run(main())