True. You can't use internal timer because I believe you can block it with your own code, at least block millis()...
If you consider some external hardware, let it be with some safe time reference. For my part I am considering a NTP call but haven't seen any example code of that yet (Lazy as I am..).