Keeping mesh centered in view when using RotateAboutAxis to face camera

I’m using a material to rotate a mesh differently for each player, depending on their camera’s rotation.
Here is my node setup :

Basically, I want to apply a sort of billboard effect to my mesh, except my mesh isn’t a plane and I want its rotation to be constrained to just its Z axis. So far so good, it works pretty well.

To understand my setup better, you need to know that the mesh is placed inside a cylindrical lobby. Actually, the mesh’s pivot point is at the center of the lobby, but the mesh itself is offset from its pivot point so that it is aligned with the circular wall of the lobby. That way, when the player moves around the lobby and rotates their view, the mesh rotates too, following the circular path of the wall (the lobby’s mesh is highlighted, and the object in question is the rectangle with a rainbow uv grid applied. The pivot point you see is the center of the lobby, and also the object’s pivot point) :

The thing that bugs me is that the object gets correctly rotated and is centered in the camera view when the player is anywhere looking straight at the wall, or in the opposite direction (pics 1 and 2) However, if the player remains in place but looks slightly to the left or the right, the mesh isn’t centered in the view anymore (pic 3).

Any clues on how I could fix that?