Just ran into this myself. Per Trigger.GetNextFireTimeUtc Method, "The value returned is not guaranteed to be valid until after the Trigger has been added to the scheduler."
So make sure you call ScheduleJob(...)
prior to executing `GetNextFireTimeUtc()'.