I don't see anything wrong with your setup, but typically, the maximum instances for the caching service can be set to n+1, where n is equal to the number of cores on the machine. With that configuration, I'd definitely expect the CPU usage to be at 100% or close to it. Does only happen for one map? What if you published a map with a simple dataset and cached it? It can be the same scales or different scales, just to see if it'll run to completion.