One issue with markup tags are they are highly dependent on a skin in use. Markup tags made from dark skins are almost useless when used with a light skin since many of colored text are unreadable on white background. It's the same for markup tags made from light skins when used in dark skins. Also there are other kinds of color-theme skins where markup tags made from either light or dark skins require some adjustments. But it is unthinkable for the user to make adjustments manually on all markup tags every time changing a skin.
How about separating markup tags from virtual tags and allow each tag to have different color code in different sets?
Say five sets are supported for markup tags. Then the user would name each set as "light", "dark", "blue", etc.
When defining a tag, it has only one name but can have five different color code for each set. If the user changes a skin, only need to select another set to activate it. Then all colored tags and text in the main panel and track info panel will change to match the skin in use.
This will also have the effect of increasing the number of available virtual tags since markup tags will be separated from virtual tags.