It's gotten out of hand.
I'd like the Public Static methods to take the lookupKey.
The internal implementation is taking both cacheKey and lookupKey because of the equality operator of the TKey.
cacheKey makes it easy at the actual storage level, but retrieving should be easier.
Or maybe change entire data structure up as it currently doesn't work if you use two blended cache stores unless you work with the cacheKeyRoot.