TextOverlay3D takes an offset and adds it to the overlay text position. The intention was probably to set the position to some reference position in a visible object and then add an offset to avoid an overlap between the label and the labeled position.
Currently, TextOverlay3D interprets the offset vector as relative to the "world" and not relative to the camera. Consequently, the text label will visually change position and the perceived offset between position and text changes constantly when we rotate the camera. This makes the offset less valuable.
I propose to change the offset calculation so that it interprets the given vector as relative to the VTK camera. The first component would be the camera's "right" vector, the second component the "up" vector, the third one the view direction.
The necessary change is local to TextOverlay3D and works fine (for me).