Semantic chunks averaging 43 tokens and finishing last at 54% look like the case your hierarchical section is built for. I'm curious how much of the gap to recursive splitting at 512 closes if the semantic splits stay as small retrieval children and the surrounding section gets swapped in before generation.