The Cache region is not a loop, it’s only there for performance improvements. A Cache region only excutes if one of the inputs (border control points?) changes or you bang the Force pin on the left.
You can move the Repeat out of the Cache and it will work just the same.
I solved this recently by using a dictionary with the Key being the original slice index, then get the values for the dictionary using the slice numbers in the order I needed them, it seem much faster than just using a loop (but I was getting all the values in a different order, so that might make a difference)