When the player is grounded, setting velocity is extremely inconsistent and results in it not working as intended. The only solution I have found for this is to teleport the player upwards slightly before applying the velocity, which makes me believe it is the IsGrounded bug that was marked as complete last year.
In this example world you can double jump, but for the first jump you'll notice that the player seems to stick to the ground.