Hi,
that happens because the constant turning speed makes the dragon pass by the goal when the angle between them is smaller than the applied turning angle.

Imagine the dragon pan is 10, the goal angle is 0 and time_step is 1. The sequence of dragosn pan is:
10 (-4)
6 (-4)
2 (-4)
-2 (+4) <-- jitter start. It pass by the goal
2 (-4) <-- it pass by the goal again but in opposite direction
-2 (+4) <-- same thing again and again...

Code:
var nTurnAngle = DRAGON_TURNING_SPEED * time_step;
my.pan += clamp(ang(vTargetAngle.pan - my.pan), -nTurnAngle, nTurnAngle);