Ok, so the problem was that, after a standard speed program, the transition to Novalight wasn't working on Oricutron because of the stop bits (I haven't figured out why it worked with F16 speed actually, probably luck
)
=> I tried to remove the stop bits on the very last byte of the "standard speed" program: it worked fine on Oricutron, but failed on real Orics. Still haven't unerstood why: the last parity bit wasn't correctly decoded though the timing on this last bit was correct (see picture below).
=> I added ONE standard stop bit to this last byte, and it worked again on real Orics... But not on Oricutron anymore
So I finally made a risky optimisation in the code: at the beginning of Novalight decoding, instead of initialising the interrupts and so on, I assume the interrupt flag is set (since Novalight is supposed to always begins with "stop pulses", it should be ok). This saved room allows to begin with TWO initial pulses reading that are trashed, instead of one. This way, the last stop bit is read but not processed, so real Orics and Oricutron are all happy now!
I still don't understand everything clearly but it seems to work fine so far. In the process, I found another 4-bytes possible optimisation (no real timing gain though, but useless code complexity)