I found a workaround for scaling GPUParticles2D without needing to dive into the ProcessMaterial (useful if you are using a shared material or a complex setup you don’t want to break).
It’s a bit of a “janky” solution and the GPUParticles2D will be always be displayed in front, but it works in a pinch:
Create a CanvasLayer node.
Place your GPUParticles2D as a child of that CanvasLayer.
Adjust the Scale property of the CanvasLayer itself.