Interesting but I say use the KIS rule; Keep It Simple. Set up a bind to change between hover and fly and use the mouse for direction, space bar for going up. Set a bind to sprint and one to turn off hover/fly bind. Now you can fly anywhere you want even diagonal!