Hi Ben,
Leave all the light and textures out for a moment and make a preview to see what part of the animation/simulation you like to use. The start and the end should look similar. If you know, based on that preview, what part of the animation/simulation you like to use (from frame to frame) then you can start working:
You might use the Point Cache or the “Animation Clip” (or even the Alembic export to get this data to loop. The Alembic is here only a step between to get to the first two one.)
The Point Cache sounds like the fastest method, but also less adjustable compared to the Animation Clip option. In the Point Cache you set the time of the sequence you like to have looped. Cache it and set the time back to Auto Time. Disable the Cloth Tag: Attribute Manager>Tag>Cloth Engine [off]. Set the loop amount and the the blend value.
Keep in mind that you can use the “Point Cache Tag” with the Character: Point Cache Object! In that way you can adjust the strength not only via “Strength” in the tag, you can use the Point Cache Object’s falloff. Even better, you can use several of the Point Cache Objects (like Deformers!) for one object. If the loop time differs, you avoid the nasty loop-repetition signs. If one loop is 4 and the other is 5 frames, the first repetition would come at frame 20. Of course your loops might be 200 frames and 330 to get an long effect.
My suggestion, start with a low res model and experiment with the timing and what method works best for you.
All the best
Sassi
A rough example: