I'm trying to place a symbol rotated so it abuts and aligns with the border of a polygon, with a label within it that is centered in one part of the symbol. I need it to look like this.

My current solution is to create points symbols approximately where I need them and symbolize them to look like the triangle + circle. then I can calculate the rotation to the nearest polygon boundary and use that angle to rotate the symbol. I can place the text at the center of the circle using the labelling system (since that is the origin of the symbol). This works to a certain extent, but as soon as I change scale, the symbols are no longer abutting the polygon boundaries and I need to go in and manually change their position like below.

I'd like to remove this manual process since there can sometimes be many of these symbols in a map.
I've tried using the labelling system to label the polygon boundaries, and build a composite symbol using the label callout. This also worked to a certain extent, but only for some of the sides of a polygon. It also results in text that is no longer horizontal which is also undesirable. This is the result of my best attempt with this method.

Does anyone have any ideas for how to achieve the labelling I'm looking for?