I had a really great brief ability to think of trees normally, and it seems the thing to do is to ensure that every included entry in an index is a full tree (# leaves = 1 << height) (since new leaves are flushed in the same data as the root, "balanced" trees have unbalanced shape with extra leaves on internodes), and I think treat each flush as if it is building a full tree.

This could get complicated for random writes, but isn't for just appending. I got inhibited when working to accumulate children of last non-full tree so as to treat a subregion of it as a full tree. Not complex to implement, just inhibited.