The previous observation was interesting, but this one is mind blowing!
https://playground.babylonjs.com/#N3RH3R#23
The player model is composed of 2 meshes (cyan parts and black ball joints). If I only parent the cyan part to the green rectangular prism, the gun has a consistent rotation regardless of the ArcRotateCamera's viewing angle and radius. This is good news!
This means a possible workaround is to make sure my imported meshes only has a single mesh. Regardless, this still seems like a bug, since parenting multiple meshes causes unexpected rotation behavior.
Edit: Nevermind, this possible workaround did not work
Intuition is telling me that as long as the ArcRotateCamera can see one of the multiple player model meshes, scene.render() will properly update all gun meshes.

