I think that your solution should be posted in the snippet repository as well. It's very useful for very complex scores, when you have to manage lot of markups, because the trial-and-error method is time consuming.
In addition:
1) How can I set the font's attributes of this tweak to the markup's default ones? As you can see, there are some additional attributes that differ (size and italic)
{
bes-\tweak text \markup {"foo" } -\rightHandFinger #0
d'^\markup { "foo" }
}
2) Is there a way to place the markup exactly on the top or on the bottom of the notehead as well?
3) What can be used to add an extra offset (vertical or horizontal, depending on the position of the markup)?
1 + 2 + 3 could give a really complete solution for having TOTAL control of the markup's position. I understand that this is not the proper way to manage these objects with Lilypond (you can add a warning in the snippet, like "use this method only if you really need it") but in many cases it's really useful.
Thanks
P