If I understand the problem, maybe you can cross fade a cache. Just thinking out loud. Say the sim is 100 frames cached out.
frame 50 is your loop frame. So you add the cache to itself with a 50 frame offset (two cache on file nodes).
At frame 50 it's entirely cache A (without offset), and frame 100 it's entirely cache B (with 50 frame offset)
Use any type of delete particle trick to blend between the two (i.e. turbulence or just by index).