Remove data api usage entirely
The bottom line is the API at this point is impossible to maintain performance. Remove it entirely in favor of queries with database object outputs.
Now the issue this poses is unlimited nested access checking. Forget that. Check category, self, and parent access only. Don't go any further back or forward. This will only cause minor configuration problems for very very very select usage scenarios.
Doing this should increase performance by 80% or more. It should be a very substantial boost.