I tried to reindex, and now I can find the top-level definition
quickly, but the rest of the data is still slow to find (it appears to
be searching for everything). Is there a way to get the data
re-ordered so it's closer to where its children without slapcat,
reorder manually, and slapadd? (would that even work?)

No other way. You can slapcat just that subtree into one file, and then
slapcat everything except that subtree into another file, and then
recreate the DB by slapadd'ing both files.