okay, update..
I was able to make it better, but it's still not quite right.. it's definitely better.. but there must be a real way to do it.
Every Tick Set Pointer.angle_diff_to_x to anglediff(Self.Angle,angle(self.X,self.Y,PointToThis.X,PointToThis.Y))
T=min(abs(self.anglediff_to_x - 180) * (0.02/180),1)
Pointer Set Angle: anglelerp(self.Angle,angle(self.X,self.Y,PointToThis.X,PointToThis.Y),T)
This is nightmarish.. I'm spending days and days just trying to get the movement right... ready to scrap it a design a different movement...