When you set the Roll, Pitch, Yaw, Latitude, Longitude, or Altitude properties, the control eventually calls JumpTo(...), which creates a JumpCameraController and sets the next camera controller to that.
The JumpCameraController basically just changes the camera to move to the specified location in one frame.
DoMapMove() and DoMapZoom() both use the
to update the camera, which internally creates or modifies a camera controller. When you call both functions within one frame, whichever method is called last prevails.
The DoMapMove() and DoMapZoom() are meant for moving the map in more automated ways, like through manipulation or inertia processors, which is what you are and should be doing. The direct properties are meant for direct changes, such as when a user
clicks a button to jump somwhere. Mixing the two methods will cause the behavior you saw.
Take a look at that NavControl object and see if there is a Yaw variation.
Alternately, you could modify your code to use the RPY LLA properties, though you'd have to account for how much to change the lat/long based upon the altitude.
The isContinuous property is there because the NavControl is sticky. If you need to call it only once, you could use isContinuous=false, and you should use larger parameter values. If you use isContinuous=true, it will keep moving, and you can
use smaller values.