Całe node.js opiera się o silnik V8, nie tylko te moduły które podałeś.
W javascript jest taka trochę oszukana asynchroniczność, bo tak naprawdę tylko najbardziej podstawowe i wymagające operacje są rzeczywiście asynchroniczne. Cały pozostały kod js będzie wykonywany synchronicznie przez główną pętlę programu, która co chwilę sprawdza czy jakaś zlecona operacja już się skończyła. Dlatego np. nie można napisać w js jakiegoś bardziej wymagającego zadania i odpalić go w innym wątku, by nie zrobił freeza na innych zadaniach (do tego są webworkery)
Zapytania http to jedne z tych podstawowych operacji i są wykonywane rzeczywiście asynchronicznie.
setTimeout tak naprawdę mogłoby być w pełni synchroniczne. Główna pętla programu zauważy, że dany czas już minął więc wywoła callback. W praktyce chyba do końca tak nie jest.
Co do różnic np. tutaj są opisane:
https://dev.to/jasmin/difference-between-the-event-loop-in-browser-and-node-js-1113