How 2 make a label for an object stay with the object?

How 2 make a label connect to an object with a pointer line, and “stay” with it more closely than in the following .blend.

In other words, like if you have a 2D drawing of something with various parts, with labels identifying the parts, with lines from the labels to the parts, but displaying in relation to a 3D model which can be rotated in BGE.

In the following blend, LMB will allow rotating two monkeys, with a text “Monkey” displaying, but the text can sometimes turn upside down (not desired) and can dissappear (also not desired) with some rotations.

So, how can I make the text stay closer to its object and never change its horizontal orientation when the objects are rotated, have a pointer line connecting it to its object, and maybe have a rectangular label-like background?

Vertex Parenting allows you to parent an object to a vertex of another, which does not apply rotation to the object.
Select the object, then shift+select the object to parent it to, then press TAB to enter edit mode. Right click a vertex and press CTRL+P

Did that, I think, but didn’t work as well as parenting to the object:

The vertex parenting changed the orientation of the text and does allow rotation of that text;
I want the text to remain in the plane of the view no matter the rotation of the object.