Thanks for playing! Hmm, maybe I should've increased the resolution on the GPUParticlesCollisionSDF3D. The scenes in the project have the manipulators in the final positions for my intended solution, but also I didn't have time to do a lot of searching for alternate solutions.
For detection, I did something similar to the cameras: I used a special shader to draw a copy of the particles in a separate SubViewport, which passed in bounding boxes to my targets as uniforms and just checked the position of every particle against them, outputting a pixel to the buffer if they collide. You can see the shader in the source for details. I also asked about it on https://forum.godotengine.org/t/more-efficient-gpuparticles3d-collision-detectio... hoping somebody would get sniped into thinking up a better solution, but didn't get any bites.