Hello, thank you for your feedback.
All the fixes you suggest are on point, and the good thing is that they're easy to implement :P. I also thought about adding an online ladder, that could be fun.
Thank you again, was a pleasure to read ^_^
For the movement I would have checked for input every frame but only register a key down if this key was up before. For example if you hit right arrow key, the key goes down, you register input, then you don't register anymore input for that key until it goes up again. This is just how I would have done it, maybe it doesn't work :P