The weird slowness goes away if we never destruct the intermediate meshes…I have no idea what the underlying cause was, but I've worked around it by making tmpmesh a persistent variable stored on a Particle.