Earth Model Gimbal Lock (loss of DOF over the poles)

So it was pointed out to me that one of the superior features of Cesium is the use of quaternions for model rotation implementation which, when done correctly, supposedly stops gimbal lock from occurring in 3-dimensional space.

I was surprised to find that trying to go directly over the north pole results in a gimbal lock. Here's a basic overview.

If you start in the western hemisphere with Canada at the top of your screen and drag down to rotate the earth's north pole towards you...

What should happen:
You should be able to continue rotating past the north pole to the point you see Oceania above Russia.

What happens:
You can rotate until you're looking down earth's north-south axis. At that point the globe begins to spin to bring around the point on the map you are trying to rotate to.

For people most concerned with human-inhabited portions of the globe, this is no big deal. But for those of us interested in movements near and over the poles (e.g arctic/antarctic exploration, missile defense) this is fairly significant.

Is there a way to alter this behavior?

By default, the camera’s constrained axis is set to Z but you can disable that by setting to undefined:

viewer.camera.constrainedAxis = undefined;

https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/#c=ZU5LawIxEP4rIRcVyoSejUuL10IPhZ5yGZOxHTqbSB5r9debVYQ+5va9Z8KsJqYjZbVRkY5qS4XbCO9XbrnwV7hNsSJHyovV2sWbHzyOlBF8iqXmWQ3P31x6TYuB9jNe6wdtSz0JDS6qfk88HlKuqmVZAphK40GwUjG75r+ogi9lHrDmHrKBJ8Vh4/SfR5xWXrCUruybyBufyenBmu7/FZOEgePH60RZ8DRbPh+HlxsJANZ0+D9VU5Id5h+NFw

Also, it’s a misconception that quaternions solve gimbal lock. Gimbal lock arises from the use of an euler angle-like system to describe rotation, regardless of whether it’s implemented with matrices, quaternions, or rotors.

What system does Cesium use underneath to describe rotation?

Cesium does use Quaternions, like many 3D engines, because it’s a more concise way of describing rotations, so it’s slightly faster and more numerically stable than using matrices for everything.

Does Scott’s answer resolve your issue?

Yes, Scott’s answer worked perfectly. Thank you both for the help.