Вопрос проверяет понимание причин задержек таймеров: блокировка потока, приоритеты очередей и ограничения браузера.
Короткий ответ
setTimeout может выполниться позже, потому что после истечения времени callback попадает в очередь задач и ждёт своей очереди. Если основной поток занят синхронным кодом, выполнение откладывается. Также задержку увеличивают microtask, рендер и обработка событий. В фоне браузер может специально замедлять таймеры. Поэтому задержка может стать заметно больше, чем указанное значение.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.