Они делают основной поток неблокирующим и выполняет его асинхронно в фоновом режиме.
Нет.Они неЭто то, что делает Web Worker.
setTimeout
помещает функцию в очередь для последующего запуска.Когда он запускается, он все еще работает в основном потоке и блокируется.