Si, en eso tienes razón, para ello lo que podrías hacer es tomar la hora de un servidor externo, que es lo que hacen algunas aplicaciones, así no tienes problemas si llegan a cambiar la hora, otra cosa que hacen algunas aplicaciones y que es más fácil es permitir un numero máximo de ejecuciones de tu aplicación, de esta forma ya no dependes del tiempo, sólo depende del número de veces que ejecuten tu aplicación.
Otra forma para seguir tomando en cuenta el tiempo es ir contando los pulsos de reloj a nivel de hardware, así aunque te lleguen a cambiar la hora, lo que cuentas son los pulsos desde el hardware, pero esto es un poco más complicado, ya que tendrías que meterte con el manejo de hardware y tener una aplicación en segundo plano que se active de ves en cuando para realizar el conteo.
Buena, esas son las formas que me se, tal vez existan más y mucho más fáciles, o podrías inventarte alguna, con que te funcione para lo que quieres, esta bien.
Hasta luego.