Tu as le lien de l'exposé en question ? Je vois vraiment mal le point avec setTimeout.
Tu utilises setTimeout quand tu as besoin de différer l'exécution d'une fonction, mais je ne vois pas pourquoi il faudrait déclencher toutes les fonctions par setTimeout (à part s'embêter encore plus avec les callbacks).
J'ai pas de ressources particulières à te donner sur les web workers, mais c'est pas le genre de truc que tu utilises pour tout et n'importe quoi.
Un web worker c'est un script qui va tourner en parallèle et qui est là pour faire uniquement du calcul brut. Il a une interface de communication restreinte avec les scripts sur la page web (tout ce qui est passé par ce tunnel de communication doit être sérialisable), et ne peut pas accéder (entre autres) au DOM.
L'use case typique d'un web worker, c'est de récupérer des données sur la page web et de vouloir effectuer un traitement lourd dessus ; tu passes les données au worker, puis celui-ci se charge de faire les calculs (sans bloquer la page web). Une fois les calculs terminés, il peut envoyer un message à la page web avec le résultat.
Si tu fais le traitement directement sur la page web, l'UI et l'ensemble des scripts seront bloqués durant le traitement. Avec un worker, tout continuera de fonctionner en même temps.
Il y a également un pattern qui permet d'émuler ce comportement avec setTimeout justement (c'est peut-être de ça que l'exposé parlait) ; en réécrivant le traitement lourd de sorte à ce qu'il puisse être interrompu à certains points clés (par exemple, chaque itération d'une boucle), tu peux glisser des petits setTimeout régulièrement qui font qu'au lieu de faire un traitement procédural bloquant, tu exécutes un petit bout du traitement, puis tu laisse quelques milisecondes à la page web pour vivre, puis tu reprends la suite du traitement, et ainsi de suite. Les performances sont souvent exécrables par rapport à un web worker (avec lequel il n'y a pas un temps arbitraire laissé à la page web pour fonctionner, le calcul reprend dès que possible).
Il y a l'article sur les web workers d'OpenClassrooms[1] qui a l'air assez complet, et que j'avais lu il fut un temps.
[1] http://fr.openclassrooms.com/informatique/cours/html5-web-workers-le-monde-parallele-du-javascript
Et pour un exemple plus concret, tu peux regarder ce projet[2] qui enregistre le son du micro (grâce à getUserMedia) et l'encode dans un web worker (pour ne pas bloquer la page web durant le traitement), worker qui est fourni par cette librairie[3].
[2] http://webaudiodemos.appspot.com/AudioRecorder/index.html
[3] https://github.com/mattdiamond/Recorderjs