Also, I made it pretty clear above that no matter how well the algorithm is designed, there always exist cases that some water cycles will have to be ignored. Because the water time can increase due to weather adjustment, and stations have to run sequentially, you are essentially relying on the fact that there is enough spare time between water cycles for it to catch up. Let’s look at one extreme case: say you have a program that runs stations 1 to 8, each for 1 hour, and the program repeats every 12 hours. Now let’s say the weather algorithm says each station has to run 2.5 hours instead of 1 hour, so suddenly the program takes 20 hours to finish, and there is no way it can satisfy the water time requirement, simply because there is not sufficient gap between each program repetition to catch up with the increased water time. So I think it’s reasonable to require the the repeat cycles to be sufficiently far apart.
My point is that the algorithm will try its best to satisfy the requests, but no matter what, there is always a limit. Even with the best algorithm, you can always come up with cases that it cannot handle, and argue that it has flaws.
One solution is to set the stations to run in parallel mode — that is, any station can turn on at any time, without serializing them. This can solve your immediate need. But again, there is no perfect solution.