This does a good job at preventing bullet spam from being a foolproof solution to the whole game, so kudos for that. Some of those boulders felt like real cheap shots though, not sure if that's what you were going for.
FYI for next time (or a patch), the freeze with particle effects happens the first time that ParticleProcessMaterial appears in a scene somewhere where it renders, as that's the point when it needs to compile. Allegedly Godot 4.4 fixes it, but until then you can force it to happen by placing a particles node somewhere on the screen for a frame (right after a level load, for example, so that it doesn't interrupt gameplay).