Birds are NOT stuck in the air (they never are), and the videos make this perfectly clear as well: they simply don't stop flapping their wings when they have technically landed on a perch. Simply speaking, this glitch occurs only when the bird is on a perch, NEVER in mid-air.
Bird movement and bird animation are entirely separate processes (other than in real life): (1) to move a bird, the script calls a 'translate' function. Once this has been done, the engine will move the bird at a certain speed along a spline between the start and end points (i.e. between two perches). (2) while the engine does the translation, the script simulates real bird movement by playing appropriate animations in different phases of the flight.
Playing those animations must be timed very precisely, as they cannot be played in any particular order (the animation graphs don't allow for this). This is further complicated by different states the script may be in. For example, if the player gets near, the script changes into 'Flee' state and tries to play a flee animation immediately. This call fails if the bird has not yet landed, and may result in both the landing animation never playing and the bird never fleeing: this is what causes this particular glitch.
Making this work is much more complicated though than it appears from those explanations, because there are many different script states and all of them react to different events or handle identical events in a different manner.
I'm working on this every once in a while and am making some progress but it consumes an incredible part of my time. Therefore, do not expect this to get finally fixed anytime soon.