Что такое Потоки на уровне ОС? В 1-ядерном процессоре же всего 1 поток?
Потоки переключаются с квантом около 28 миллисекунд или около того. 

Да, если навертеть много потоков, кэш будет вымываться. А вы думали, в сказку попали? Хорошие HPC программы не запускают тредов больше чем ядер.

Почему с помощью распарализации потоков можно получить выигрыш в скорости вычислений? 
Потому что надо аккуратно программировать, не допускать переключения контекстов (не дергать ядро почем зря, а то с некоторых станется) и не запускать тредов больше, чем в системе есть ядер.

 Тогда почему вообще вся ОС не асинхронная в одном потоке как Node JS? 
Поздравляю вас с изобретением Windows 3.1. Вы наверное не застали, но эта ОС наглухо зависала вместе с приложением, если оно зависало.
В многозадачной системе каждый процесс имеет кучу всего - свою область памяти, своего родителя, права доступа, открытые файловые дескрипторы и так далее. Переключение с процесса на процесс - довольно тяжелая задача.

Поток или тред - это грубо говоря возможность запустить несколько "облегченных" процессов парралельно, которые используют один набор дескрипторов, один process ID и могут использовать ту же область памяти.
Поэтому будет быстрее и дешевле просчитать что-то в тредах, чем в двух процессах.

Сколько инструкций за раз выполняется 1, 10, 100? До прерывания? От чего зависит. 
Зависит от ядра операционки, а точнее от реализации process scheduler. Обычно все завязано на прерывании по таймеру, поэтому выделяются слайсы процессорного времени - а значит у процессора с бОльшей тактовой частотой будет выполнено больше инструкций за слайс. А дальше - process scheduler может быть довольно умным, выделяя конкретному процессу/потоку несколько слайсов подряд, если считает что так будет лучше.
Но слишком сложной логики у process scheduler быть не может, иначе само переключение будет слишком дорогим.