Thanks for the information.
I've done some initial development for caching and have found that it does negate requests to the third-party WMS Server and does improve response time.
However, the ExpirationTime and refresh is not behaving as I had expected and as I believe you had stated in your post. I started by setting ExpirationTime to 5 minutes. The first time a request was made the cache tiles were created. Within that initial 5 minute time span each time I went back to an extent that was cached it was the cached tiles that were used, which is correct. However, once the 5 minutes had expired the cached tiles are refreshed with a request to the server, but the 5 minute expiration no longer works. Once the tiles are refreshed they continue to be refreshed each time that extent is requested even though they had been refreshed less than 5 minutes ago.
Operating like this is like there is no caching at all because after the initial ExpirationTime is complete all extents make a request to the third-party WMS Server and refresh the cache.
This can't possibly be the way it was intended to work. From my perspective the ExpirationTime should reset after each refresh. Below is a screen capture of the times of one of the tiles. I believe what is happening here is that MapSuite is looking at Created Time instead of Modified Time. MapSuite should either reset Created Time after a refresh or it should be checking Modified Time.
Does MapSuite have some other design intention for how it is operating?