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