Well, one possible, but incredibly hacky and ugly, method would be to specify colors as multiple existing color codes.

i.e.
<ctrl+k>Rf[,Rb]<ctrl+k>Gf[,Gb]<ctrl+k>Bf[,Bb]<ctrl+k>Pf[,Pb][text here]

Where *f = foreground, *b = background, R, G and B are color values (within the range 0-99 rather than 0-255) and P are the 'standard' palette entries.
Clients supporting this would notice the 4 sequential color instructions and interpret them as above, while clients that don't support it would naturally fall back to the last color instruction.
( There's a caveat with regard to background colors, as a color instruction without background color component won't reset the background color. )