@theflexdude - nailed it
Sounds like the End Before Sunrise option isn’t as intelligent as I thought it would be. It just adjusts the start time by a minute or so each day to account for the change in sunrise time:
[Start Time] = [Sunrise] - [Total Schedule Run Time]
Instead of:
Foreach [Zone] in [Schedule]:
If [Zone Moisture Balance indicates zone will water today]:
[End Before Sunrise Offset] += [Zone Watering Duration]
[Start Time] = [Sunrise] - [End Before Sunrise Offset]
Something to think about for v3.1