Method 3 seems like my closest attempt yet, am going to really examine what is going on where the camera stops moving. I think the rotation is going backwards and forwards or maybe the axis. However even with that fixed there seems to be something else wrong as the rotation goes a bit strange, maybe take a look at some of the low level code?