I don't have links or anything, but have you tried giving the player character more behaviors?
I remember doing something similar back in the day, where performing a dash would activate a Bullet behavior, set the angle of motion to the direction you want, and later deactivate it once the action is over.
As for hovering, wouldn't lowering the player's Platform.MaxFallSpeed suffice?