After further investigation I found I had also made some wrong assumptions. Some by not reading the API fully since the ‘AngleBetweenTwoPoints’ method is for Vector2s not Vector3s.
What the API does not make clear is what its name implies, ie it will only work for two points given by their position vectors in Cartesian space.
In addition the calculation ‘AngleBetweenTwoPoints’ makes is wrong and I have raised a bug.
Now in the examples being used in your case Vector2s could be used. Since you are using Vector3s and you want a more general solution see https://www.babylonjs-playground.com/#0RYA8I#5