I don't have much of a dog in this fight, but I feel like an easier fix would be to have basically two "modes" for flying: Hovering and Soaring.
- Hovering: You are using most of your downforce to traverse more accurately around. You can move up to half your speed in the air, or you can stay in place. You can dash if you like, which will also be at half-speed.
- Soaring: You are moving fast, but less able to maneuver and cannot stay in place. You must move up to your full speed and can dash if you like. However you must travel your full speed, and you may only make one 90 degree/sideways turn per move action. You must move at least one space before turning.
- To switch between these two "modes", you must expend an action. This can be done before or after you move.
You can now do some interesting things. I don't have a hard and fast rule to rein in or define gaining altitude (largely for soaring, I think hovering kind of deals with itself), but I think it's probably doable. But with this, you avoid most hassle of lots of rules because being in different modes focuses you on a few hard limits: Hovering is slow but allows for exact movement, Soaring is fast but lacks maneuverability.
EDIT: Hoo boy, made a bunch of very fast clarity edits. Hopefully got everything I wanted in there.