I have not played the game you are referencing, but Something to try:
Include a gravity vector on your player, force in the downward direction of -9.8. Verify gravity "works" (increases over time) before continuing.
put the player on the ground. player should not fall under the ground. So setup collision detection and response properly
next work on "takeoff": modify gravity based on speed
- when player is at zero speed, gravity is full force.
- when player is at "idle" speed, gravity is 0
- and interpolate gravity between the two speeds.
- i guess if you want lift, have gravity be negative above idle speed
for stall simulation, have the plane's forward vector rotate towards it's current velocity vector. change the speed of rotation by the velocity (so, faster plane rotates faster towards it's current velocity vector, slower plane rotates slower)
hope that helps.