Цикл событий выполняет ваш JavaScript в одном потоке, поэтому всё синхронное, что занимает много времени, блокирует его — а пока он заблокирован, Node не обслуживает ни один другой запрос, таймер или коллбэк. Блокировка почти всегда — это работа, ограниченная CPU или API *Sync, но никогда не корректно ожидаемый async-ввод-вывод.
