если коротко: когда ты зовёшь асинхронный метод ты хочешь в итоге отдать кому-то (оси или другому процессу) саму работу. для примера - когда ты делаешь что то типа
http_client = AsyncHTTPClient()
response = await http_client.fetch(url)
то по сути питон в итоге отдаст операционке дожидаться ответа, а сам вернётся в иолуп и будет выполнять что то другое пока ось не позавёт его колбек.
Тут можно почитать подробней про то что происходит под капотом
https://habr.com/company/infopulse/blog/415259/
З.Ы.
в случае с изображением наверное лучшее что можно сделать это отдавать сам джоб в отдельный процес.