Made lots of progress. I have a prototype where this is working. I am hooking into the existing PerProjectControllerCache. However, I made lots of small refactorings to the code to make it cleaner and now PerProjectControllerCache shares some code with PerProjectServiceCache. This code has been moved to the GrailsProject class.
This appears to be working right now. I need to write a few tests and clean things up before committing.
So far, I have only worked on content assist, but the same infrastructure should be usable for navigation.