I have come up with a... sort of solution for drawing all the colour text at deck launch so that I don't have the "pop in after transition" issue
Essentially I've just put this function in my deck-level scripts to just cycle through all the cards and make them all draw on launch. Then I just call it from the "on view" of my starting card.
(removed, see below for better version)
This is kinda hacky (I didn't see an obvious way to check that the contraptions belong to the right prototype so I'm running it on any contraption) so if you have other contraptions with a redraw[] method that does something else this may not be good but it is working for my purposes!
(Apologies if there IS an obvious way to check which prototype a contraption belongs to and I'm just too eepy to figure it out right now)
Edit: better version, thanks IJ for the tip on picking the prototype name
on refreshcolourtext do each c in deck.cards each w in c.widgets if w.def.name="colourtext" w.redraw[] end end end end