I believe what I'm trying to get across is difficult because I may not be using your terminology. I can best describe it by showing you two screenshots and then explaining the problem. As you can see I have 3 programs, or "watering times" as I think you call them, setup. The problem is when the "Water the lawn" time occurs on the same day as the "Flowers" water time. When this happens, then it is scheduled to completely finish the "Water the Lawn" program before the Flowers program begins. As you can see in the schedule snapshot, the first time the Flowers program runs is at 7:15am even though it is set to begin at 5:30am. I think this better shows what I am talking about. So what I'm proposing is that the Flowers time would begin at the first available open slot, which would actually be at the normal start time of 5:30 anyway since the Water the Lawn program would be on a rest. In other words, if there are several "watering times" that are set to occur, and the smart cycle is causing them to run into each other, why can't the scheduler mesh them together taking advantage of the rest times instead of pushing the next "watering time" out until the previous one is completely done, causing your total watering time for all areas to be pushed later into the day. I hope this explanation makes more sense. thanks.
On a somewhat unrelated note, it seems counter-intuitive to me that you can have these "water times" set up with what zones to run, the duration, smart cycle option, etc. for a scheduled run, but there is no way of just running one of these as a one-off type situation. Sometimes I want to just run my flowers for an extra cycle on a super hot day. But unless I actually change the start time in the app (and then have to change it back later), the only other way is to go and manually start a valve, and if I happen to have two valves in the same area I have to wait for the first valve to finish and then manually start the next valve. Not to mention the manual run doesn't include a smart cycle option as far as I can tell. It seems much easier to just be able to say run this already preprogrammed "water time" once right now.
Nitpicking here- the term "program" seems to make more sense to me than "water time" in the context of the app. Then you could say "run this program now"