Во-первых, вы уже в довольно неприятном беспорядке, если ваши часы не работают на 4 часа . Как правило, время корректируется только на миллисекунды или секунды, а иногда - на одну или две минуты, если машина не была подключена к сети в течение очень долгого времени. Один из вариантов - проверить, что время достаточно точное, сделав свой собственный вызов NTP перед установкой таймера.
Другим вариантом является создание разумно регулярно запускаемого таймера, например, раз в минуту или пять минут, который проверяет время и затем при необходимости принимает меры. Это немного менее эффективно, но я бы не ожидал, что эффект от пробуждения одного потока, выполняющего простую проверку раз в минуту, окажет значительное влияние на производительность. Вам следует отрегулировать регулярность проверки на основе того, насколько точно вам нужен таймер для срабатывания, и как мало влияния на производительность вам нужно.