Of course the protocol is aware of basic things like frame transmission ordering. Your case looks like a typical priority inversion problem. Please tell us how do you manage the transmission queue in your CAN driver? Can you share the code here?
Related: UAVCAN/CAN: tx buffer management in CAN (FD) controllers