The more I read this thread, the more I think this is just a bug in Cron. It should really only operate on UTC, regardless of the local time set on the server.

with systemd timers [0], explicitly specifying the timezone is an option:

    > systemd-analyze calendar '02:30'
      Original form: 02:30
    Normalized form: *-*-* 02:30:00
        Next elapse: Tue 2025-10-28 02:30:00 PDT
           (in UTC): Tue 2025-10-28 09:30:00 UTC
           From now: 10h left
    > systemd-analyze calendar '02:30 UTC'
      Original form: 02:30 UTC
    Normalized form: *-*-* 02:30:00 UTC
        Next elapse: Mon 2025-10-27 19:30:00 PDT
           (in UTC): Tue 2025-10-28 02:30:00 UTC
           From now: 3h 34min left
however, making it disregard the server timezone and use UTC by default isn't really an option. it would violate the Principle of Least Surprise, as well as being a hugely backwards-incompatible breaking change.

0: https://www.freedesktop.org/software/systemd/man/latest/syst...