Thanks @franz! That was it. I had inadvertently set one of the nozzle types to emitter. I fixed that and now the program has been split into two cycles, as expected. No problem. Your explanation makes sense. 
Two more questions on this topic:
(1) Total duration is 1:26. Iro is splitting that into two 43 minute cycles as expected (see the screenshot below). Given that the first cycle starts at 4AM (and completes at 4:43AM), why does the second cycle wait all the way until 5:26AM to start (precisely 1hr26mins after first cycle, where 1:26 corresponds to total duration time). I thought it would start straight away since the minimum 30 minute soak time had been satisfied (I read on Rachio support pages that Iro only need to wait 30 minutes for “soak”). I’m seeing a gap much larger than that, over an hour…
What I’m hoping to get is each cycle starting as soon as possible after first one completes (after satisfying 30 minute minimum soak requirement). Reason is that we only have certain hours we can water here (restrictions) and therefore I need as “compact” of a program as possible when using cycle soak to fit into the window of time I can water. For example, was hoping this program would have been complete by 5:26AM, running two 43 minute cycles back-to-back (since 30 minute soak minimums were satisfied). Is this possible?
Perhaps I need to create multiple Watering Times, one for each zone, in order to stack all the run times to achieve this? Or some other way?
(2) Viewing the Watering Schedule in “2x” (or 3x, 4x, etc) view shows two cycles, but viewing in 1x shows just a single cycle. Is this a bug in the app or am I misinterpreting the data?
Relevant screenshots:
(2x view, 2 cycles as expected)
(1x view, 1 cycle, unexpected)