Представь, что мы пишем бота в телеге для ,где юзер отправляет чето , а бот обоабатывает input и возращает ответ, асинхронный путь выглядит в данном случае так:
заводим event loop, ставящий задачи в очередь;
дергаем указанный callback, когда какая-то задача выполнилась;
обрабатываем этот event loop в один или несколько потоков.
Итак, представим себе, что callback - очень "тяжелая" функция, производит мощные расчеты и выполняется, например, секунду. Так вот, если наш event loop обрабатывается только одним потоком, и на сервер пришел один клиент, то в течение секунды наш сервер не сможет принимать входящие сообщения от других клиентов, пока event loop занят вычислением callback. Если event loop обрабатывается в 2 потока, то в таком случае два параллельно подключившихся клиента уже делают невозможным (на секунду) подключение третьего клиента. И так далее.