Towards the end of the video you mentioned that we multiply GRAVITY with delta because we are accelerating:
motion.y += GRAVITY * delta
move_and_slide function multiplies motion by delta once more so in fact it is multiplied with delta squared. This is being justified by formula:
acceleration = speed * time²
First off this equation seems incorrect. Acceleration has units (for example) [m/s²], speed [m/s] and time [s]. If you multiply speed and time squared, you get [m/s * s²] = [m * s]. The correct formula would in my opinion be:
acceleration = speed_gained / time_interval
Leaving those equations behind and getting to more gamey stuff. According to my knowledge delta is used to compensate for different time between function calls. If GRAVITY is multiplied by delta² instead of just delta, this compensation does not work as intended anymore.
And finally if you don’t manually multiply by delta like in the following line of code, you are accelerating anyway because you are adding to the motion, not setting it. Acceleration actually is the speed you gain in a certain time unit. With following code you’re doing just that: in time unit delta you gain GRAVITY * delta speed in y direction. Multiplication is of course, as you taught us, done by the move_and_slide function.
motion.y += GRAVITY
So after all that pseudo scientific talk my proposition is as follows: if you find my arguments correct, I’d suggest removing multiplication with delta from jumping and falling. I’ve tried it myself and works as expected (although I made a bit different jump model). I’ve also removed the delta argument from functions for processing jumping and falling since it’s no longer needed. The last thing necessary is some constant adjustment for gravity and jump speed.