_NPCScan.Overlay relies on textures drawing in the order they're parented to a frame, although sometimes even that doesn't work and a few textures will appear out of order. I think fontstrings might be drawn in an entirely different pass judging by what you've posted, so there's no way to sandwich a fontstring between two textures on the same drawlayer.
I imagine the rendering order is something like this pseudocode:
Code:
for each Layer in Frame
for each Texture in Layer
draw Texture
for each FontString in Layer -- Always overlaps same-layer textures
draw FontString