Зависит ли это от "блоков", зависит от вашего определения "блока". Обычно блокировка означает, что ваш ЦП практически не используется, но текущий поток не может ничего с ним сделать, потому что он ожидает ввода-вывода или тому подобное. Подобного не случается в node.js, если вы не используете нерекомендованные функции синхронного ввода-вывода. Вместо этого функции быстро возвращаются, и когда задача ввода-вывода началась, ваш обратный вызов вызывается, и вы берете его оттуда. Тем временем могут быть обработаны другие запросы.
Если вы выполняете что-то требующее большого объема вычислений в узле, ничто иное не сможет использовать процессор до тех пор, пока это не будет сделано, но по совершенно другой причине: процессор фактически занят. Обычно это не то, что имеют в виду люди, когда говорят «блокирование», а просто длинные вычисления.
200 мс - долгое время, чтобы что-то предпринять, если оно не связано с вводом-выводом и просто выполняет вычисления. Честно говоря, это не та вещь, которую вы должны делать в узле. Решение, более близкое к духу узла, состояло бы в том, чтобы такого рода сокращение чисел происходило в другой (не javascript) программе, которая вызывается узлом и которая вызывает ваш обратный вызов, когда завершится. Предполагая, что у вас есть многоядерный компьютер (или другая программа работает на другом компьютере), узел может продолжать отвечать на запросы, пока другая программа отключается.
Есть случаи, когда кластер (как уже упоминали другие) может помочь, но я сомневаюсь, что ваш действительно один из них. Кластеры действительно созданы для тех случаев, когда у вас есть много-много маленьких запросов, которые вместе могут обрабатывать более чем одно ядро ЦП, а не для случая, когда у вас есть отдельные запросы, занимающие сотни миллисекунд каждый.