I would suggest a variation on conditional looping.
Use two auxiliary timelines
and ping-pong between them
using control cues on conditional layers.
With the right timing,
it should be possible to loop seamlessly.
Send pause cues to both timelines
before the cue to play one of the twins to start the process.
Do not Stop the two auxiliary timelines when one completes its pass.
With control cues, goto its head and pause, to re-cue them
loaded and ready for a clean transition on the the next pass.
Control cues placed near the end of each aux timeline when the clip completes
on the conditional layer to ...
• play its twin, then
• goto to its own start point and pause, cued for its next pass.
After the condition change (i.e. after the last pass runs out)
on both timelines, past the loop active conditional control cues above,
there should be housekeeping control cues NOT on a conditional layer
• stops its twin
• stops itself
When the condition is set to "loop active",
these cues will not be reached.
When the condition is set to "loop inactive",
they will run on one of the timelines.
If you need to synch the runout to something else,
you would also place that control cue in the runout areas of both aux timelines.