I think the only added complexity for this method might be back populating higher layers of cache with lower layer loaded data.

I would hide the loader delegate complexity inside the LongTermCacheLookup call.