OK, at the end of my %pre I do
chvt 1
and it at least goes further and says it is starting the X server
1 ... 2 ... 3 ... (etc) started successfully
But it does not switch to it.
Which just reminded me that I could just run this in text mode! That would probably solve the problem, but now I'm being stubborn and want to get it going in X :-)
I'm just going to try chvt up to 10 and see if any of those works. If not, I'll switch to text mode.
Will report back ...