Supongo que Windows de alguna manera se comporta mal al despertar del sueño con respecto a la hora del sistema. De acuerdo con un artículo de Wikipedia, la clave de registro que está citando no funciona completamente, incluso en versiones recientes de Windows:
Windows espera que el reloj de la computadora en tiempo real se ejecute a la hora local. Desde Windows NT ha habido una entrada de registro RealTimeIsUniversal = 1, pero esta característica aún no es compatible o no está completamente implementada (incluida Vista), por lo que no es posible ejecutar el reloj en tiempo real en Tiempo Universal Coordinado.
Creo que su mejor apuesta aquí sería decirle a Linux que el reloj del sistema se ejecuta en hora local y morder la bala dos veces al año con DST.
ETA: Este artículo detalla un poco más el problema y también sugiere el hecho de que los problemas con esa clave de registro se arreglan en Vista SP2 y Windows 7:
2001-07-09:Recibí una respuesta de alguien en el Equipo Base Kernel de Microsoft que se interesó en RealTimeIsUniversal y echaron un vistazo a las partes relevantes del código fuente del kernel NT. El indicador RealTimeIsUniversal está allí (un resto de los días en que NT todavía se ejecutaba en máquinas RISC con UTC RTC), pero su implementación ahora parece incompleta y actualmente no está cubierta por la documentación de Microsoft y el conjunto de pruebas de regresión, por lo tanto, no se recomienda su uso en esta vez. Se han identificado un par de posibles errores de RealTimeIsUniversal en los últimos días, podría haber más. Por ejemplo, el depurador del kernel supone que la hora CMOS es la hora local y que la hora será incorrecta cuando RealTimeIsUniversal = 1.
31-10-2008: ¡Hurra! Alguien de la División de Sistemas Operativos Core de Microsoft me insinúa un correo electrónico que tanto Vista SP2 como Windows 7 solucionarán los problemas en el soporte RealTimeIsUniversal = 1 que han hecho que ejecutar el reloj CMOS en UTC hasta ahora no sea práctico con Windows (es decir, el tiempo estaba mal después de reanudar un Windows suspendido / hibernando). Sin embargo, advierte que este soporte mejorado para UTC en el reloj CMOS puede no estar inmediatamente documentado ampliamente y los detalles pueden cambiar en el futuro.
Entonces, concluyendo, creo que tienes dos opciones:
- Actualice a un sistema operativo reciente.
- Cambie Linux a la hora local.
PD: Al contrario de otros carteles aquí, esta no puede ser la batería CMOS. El reloj en tiempo real no funciona con la batería mientras el sistema tenga energía. Esto incluye el modo de suspensión (obviamente). En caso de que la batería CMOS esté agotada, el reloj en tiempo real se restablecería a su configuración de fábrica, que generalmente es el 1 de enero hace unos años. Un par de horas de compensación simplemente no sucede, ya que no hay un "estado" de reloj que sobreviva a una pérdida de energía completa. No es como un reloj de pared con una batería escamosa que retiene su tiempo incluso cuando la batería está agotada.