Oh my thank you for your explanation and fix!
I tried this and it didn't solve it. It only reduced the likelihood. I now understand why the superjump happens though:
This dev log doesn't contain the full gravity multiplier check needed to handle jumping properly. Copying just what you see here will make your gravityMultiplier variable set itself to your jump cutoff. This is because it's missing a ground check. There's a lot more stuff missing for this gravityMultiplier. Go check out the calculateGravity function in the scripts you can download here.