I have pretty much the same problem than the original poster.
I have made all my possible to cache all i can, i write some custom snippet to avoid multiple getResources, and i use this caching plugin
https://gist.github.com/3639503.. but sometimes i NEED to refresh the cache to update the info in multiple parts.. and when this happen ... i'm swear...
because :
1) it's a important project so when i have some report from the client that the site is slow.. (only the first time yes when the cache is rebuilding..) i feel embarassed to explain why..
2) it's a > 600 pages i cant surf all the page myself...
So actually the only solution i found ( dont laugh plz ).. I open a webcrawler app on my desktop.. like
http://sitesucker.us/ and i crawl the site ... but well.. i cannot tell you how many time i have suck my site with this method.. too many.. :/.
Question for the pro :
- Do you think in this case i should buy a hosted server to use advanced caching mecanism... actually i'm on shared server like "normal" people.. ?
- Do you think we can build a snippet (even better : a CMP) to generate the cache with the API (like "build the site"

( will it be faster and more precise than external app ? )
How people with big website in modx do ? please share your idea...