After some research and testing on and off, I seem to have resolved the issue above. I'll post the solution in case it helps anybody else.
So, suspicions about the bootloader seem to be correct. It seems that some arduinos run into issues if they receive serial data in the first few moments of startup. As it receives ibus data from the car almost immediately after waking up, this was causing it to freeze and not it even enter the setup loop.
I could resolve this on my genuine arduino mega as it has 4 hardware serial ports. I left my debugSerial on Serial1 (pins 18 & 19) as before, but moved the ibusSerial over to serial3 (pins 14 & 15). It was on 'serial' before, pins 0 & 1.
I have to point ibusSerial to this in the setup loop of course.
There don't appear to be any clashes now on serial3 and it seems to wake up immediately.
Rob.