Thank you so far for your help! Much appreciated 
Your example does look good and appears to be working, however I adopted your method and my demo still seems to break on the same cones;
That leads me to believe that it might be an issue with the glTF importer/blender Exporter? I also tried completely deleting those two cones and copying one of the ones that did work, with the same result as above.
And I just observed that if I rotate the last three cones in the same direction as the previous ones (anti-clockwise), this works perfectly fine.
//edit - code;
parseGroups() {
for (let i = 0; i < this.world.camerapaths.length; i++) {
for (let j = 0; j < this.world.camerapaths[i].length; j++) {
const node = this.world.camerapaths[i][j];
this._tweenVectorArray.push(new THREE.Vector4(node.position.x, node.position.y, node.position.z, node.rotation.y))
}
}
}
createCameraTweens() {
this.parseGroups();
for (let i = 0; i < this._tweenVectorArray.length - 1; i++) {
let t = new TWEEN.Tween(this._tweenVectorArray[i], this.tweens)
.to(this._tweenVectorArray[i + 1].clone(), 1000)
.onUpdate((val) => {
common.camera.position.copy(val)
common.camera.rotation.y = val.w;
this.stage.add(new THREE.ArrowHelper(common.camera.getWorldDirection(new THREE.Vector3()), common.camera.position, 2, 0xFF0000));
})
.easing(TWEEN.Easing.Linear.None);
this._cameraTweenGroups.push(t);
}
}

