Narrowed it down to this boolean. Both Float and Manifold solvers produce artifacts in the vector pass. They also call me the bug catcher.
In this project I animated a geonode switch to turn on and off the cutter’s geometry, which is easier than animating the cutter’s position. Weirdly I’m on 5.1.1 and the geonodes still show old sockets from when I created the file in 4.x.