The simplest and most straightforward way is to append to the array and let it run until it is done. However unlikely it is to be broken, there is no guarantee that will continue to work.
A safer solution was chosen instead. A fairly small reduction in simplicity for the warm fuzzies of safety.
Which one is "better" is at this point matter of opinion. In one sense the final choice was deemed best because it was the final choice. In another sense, the original was best (aside from being disqualified on a technicality). In the same sense that a runner can be fastest but not win.