You might be able to do it by splitting the Build List loop into two loops, one that builds/updates the list of layer center points and one that builds the layers.
I made an attempt in that direction, attached. Two main problems. One, the circle flickers between the old and new position as you drag it. This happens because the first Process List loop checks Is Point within Layer every iteration instead of just when the drag starts. Problem two, you can only successfully drag the layer once. The first Process List loop needs to remember the new center instead of continuing to use the original one. Anyway, despite the problems, maybe this gives you something to build on.
I was also wondering how Is Point Within Layerpasses “Rendered Layers” names to the layer port. Is there anything there that could block progress? Edit: I see what you did using “Process Item”, nevermind!