A plan whose subtasks carried >=2 distinct screen labels still collapsed
onto a single root frame: normalize() assigned every subtask the same
parent_frame_id regardless of its screen tag, because the per-screen
N-root scaffold was deleted together with the concurrent path in
aca0d3a0 even though the benchmark behind that removal only measured
concurrency, not screen splitting. Restore the grouping as a purely
sequential structure: each screen group gets its own scaffold root
placed to the right of the previous one, zero_content sums over all
roots, and every group root flows into cleanup so screen navigation
wiring links the screens for app-mode preview. Plans with zero or one
screen label keep today's single-root behavior byte for byte, and
append mode stays single-root. Update decomposition.md to describe the
actual behavior instead of the deleted one.