I'll try to fix the freezing, I think it's doing that because it loads in particles and Godot is terrible at loading them in without preloading. Were you playing the web or windows export version?
I recreated the issue you had with the old suit, thanks for catching that cause I didn't account for the player trying to move forward during that scene.
Viewing post in In the Eye of the Beheader comments
Web version. I usually go ahead and use that one for places that offer it because if I'm trying to find issues that may arise on lower end systems the web versions are typically great at replicating those sorts of conditions.
I'll also let you know there is the ability in the last scene to end up glitched inside, or to glitch one of the old suits, directly into the corner pixel of a wall. I managed to recreate it a couple of times but it doesn't seem to work on all the walls.
Only seems to happen on corners between two walls closest to the bottom of the camera and occurs after a knockdown followed by the standup of either the player controller or one of the enemies. So its only the corners created when a northward facing wall and either an eastward or westward wall connect, anything where you get to see the texture on the front (Southward facing walls by how I refer to them) are safe and don't seem to cause the issue. Additionally bridges over that water (Muck? Sewage? The bad green stuff lol) don't have the issue on any of their corners.
Without looking at your code for all this my guess would be when one of the controllers for the player or the enemy is downed you have them set to move a short distance (Which is a great thing to do because it makes it look a lot more alive and reactive rather than just dropping in place), and I would guess that when the walls got set up they aren't quiiiiiiite overlapping enough, or whatever you use to set their collision left a tiny spot in those corners that you could get trapped in.
So something gets downed, code pushes them over a little, checks for collision, finds your gonna hit the wall, finds the nearest appropriate spot to shunt them too instead, and occasionally that is our little prison box between the wall corners. Bam, stuck.
But again, without looking at your code this is all just speculation.
Solid game by the by friend