with addons that are load later your are pretty much out of luck and its the users fault if they pick that font :P. it basically comes down to the choice of either using lsm and accepting its problems (ie media not being available till later or not at all) or only using hardcoded fonts that you provide.
in my opinion LSM benefits far outway its problems.
and honestly i have never seen anyone complain of fonts loading in late. but i can see where that might cause an issue. you can always put a disclaimer warning of the issue and pointing to how users can add their own media so that that wont happen
callbacks can come at anytime though i would call it poor design if a addon registers media sometime after it loads.
this is what the default font is for. if the font you are looking for is not there then it uses the default one if at some other time your font becomes available it tells you via a callback that it is available. this is the only safe way to use fonts if you are not providing them yourself.
the problem with storing direct font paths of other addons fonts is that if you uninstall that addon your font now points at an invalid location and good luck with figuring out that mess :P
also looking at your code why are you waiting till PLAYER_ENTERING_WORLD to update your textures? simply set your textures andright after register for the LSM callback and then update if the new one matches the one you need
But I don't want to update all the frames with the font I get from LSM on every callback.
I am also not happy with the way I postponed the texture update for the bars until PLAYER_ENTERING_WORLD is fired.
Maybe its best to save the actual texture/font path. That way I don't even need the LSM callback and you can use textures from disabled addons.
you do not have to update on every callback all you have to do is check if the font you are looking for is now available and only when it is update your frames
to check if your font is available you can check with