You might want to combine my techniques of
having a good/stale/bad cache together with
the highlander approach to throttle activity. You'll need the latter to ensure that two requests aren't both trying to tell Excel to do two different things. And the former ensures that existing data continues to be served while new data is being generated, in a consistent (but lazy) way.