Moving this part out of the if might be necessary in order to make the fix work, but the timestamps are not required, as gatherMissingFrom has a defined semantics in that respect.
Contrary to your description the found = true is simply not taken over when the cache from popup gets the info from the CacheCache merged in.