Насколько я понял когда используешь асинхронность , node js сам там в ос все выкинет и os сама решит как лучше и быстрее все это выполнить, тогда зачем это все нужно если достаточно использовать асинхронность где надо ?
Дело в том что иногда тебе нужно повесили обработку данных, а не только запросить и получить... Например надо расшифровать или отсортировать или преобразовать, о общем обработать ответ от внешнего источника. И пока обрабатывать ты его будешь у тебя не будет никакой асинхронности и ты займешь основной поток, веть нода однопоточная. Для того чтобы так не происходило и нужен worker thread, в который может передать задачу и потом получить ответ