TBH, I think the best approach is what I did in:
0001-report-top-parent-progress-for-CREATE-INDEX.txt
That's a minimal patch, ideal for backpatching.
..which defines/clarifies that the progress reporting is only for
*direct* children. That avoids the need to change any data structures,
and it's what was probably intended by the original patch, which doesn't
seem to have considered intermediate partitioned tables.
I think it'd be fine to re-define that in some future release, to allow
showing indirect children (probably only "leaves", and not intermediate
partitioned tables). Or "total_bytes" or other global progress.
--
Justin