What a colorful Community post! :-)
Vitaliy, another way to have text in contrast is to use your trick posted in Stackexchange
text = First[First[ImportString[ExportString[Style["gray", Italic, FontSize -> 24,
FontFamily -> "Times"], "PDF"], "PDF", "TextMode" -> "Outlines"]]];
and setting the fonts to be always black with white borders:
Graphics[{EdgeForm[Directive[White, Thick]], Black, text},
Background -> Gray, PlotRange -> {{-5, 25}, {-0, 20}}]

Btw, your awesome function to find color relationships can be used as a "Color Blind Assistant". Here is the modified function that does this given a color:
cassist[c_] := Part[Nearest[data, {c, ""}, DistanceFunction -> neco],1,-1]
for example:
cassist[Darker@Red]
"darkish red"
Which it really tells how that particular color looks like.