Вы неправильно выбрали технологию (асинхронным "молотком" пытаетесь синхронизировать "гвозди").
Современные системы достаточно хорошо научились синхронизировать время, вот пусть ОС и занимается этим.
ps. Учтите, что функции "отложенного" вызова работают не точно. Вызов (setTime(fn, 100)) может произойти через 100 м.с. или через 1200 (это зависит от загруженности основного цикла node.js).