We had to do something similar so we could use ArcMap's label engine to determine the label placement for MapServer WMS's. The process is similar to your workaround:
1. Turn on labels for an ArcMap layer.
2. Convert to an annotation feature class, saved in a file gdb.
3. Re-position the annotation features if necessary.
4. Use the Feature-to-point tool (Data Management->Features) to convert the annotation to a point feature class, using the CENTROID as the point placement option.
Unfortunately there is bunch of manual work involved (steps 1-3). Step 4 we use in a Python script since we perform a number of other processes on the output point file.
Your problem with "LabelPoint" sounds familiar. I vaguely recall testing it and getting the same results as you, and then abandoning it. Maybe it works better in 10?