Current implementation of drawing as two-column spends a lot complexity on handling the special case of drawing the extra on the taller column. This can probably be handled better if we just redraw the half of the top of the column as black. Rather than keeping track of the gap and specifically drawing that segment, we can draw two columns up to max, but at min change the color of one side to black. This should hopefully allow most of the looping logic to be simplfied down to the draw-once case, and remove the logic for recalculating and re-feeding x for the tall column.
We can take the draw-the-minimum-of-two-columns solution, and add an additional feeder to the draw node for color (in addition to the feeders for x and y). This feeder will need a looping control dependent on both max and min (so maybe we'll still need a limited use of gap?)
Since we're supplying colors via helper nodes... maybe a better optimization would be to have helper nodes track colors for individual columns. Unfortunately, given the current size, I think such a solution is unlikely to fit. We'd still have to calculate max, and all nodes would need to be coordinated according to max, and possibly gap, and this already barely fits in the current solution.