Which shape of jump curve should it be? Currently in the game it look like this.
Maybe cut a bit of the top when stopping the jump early? But it may end up jumping too high if left to smooth out?
Try and make a jump sustain system where it doesn't just cancel your jump, it changes the height of the full curve instead. It'll feel a lot more natural this way. Perhaps you can manipulate the gravity of the player directly to be less when you hold jump - I think this is what a lot of platformers do.