Just to be clear, you are seeing that when the slave sees an "EVENT_RX_FAIL", you expect the master to resend that failed message but instead it's sending the new message because it saw "EVENT_TRANSFER_TX_COMPLETED" instead of "EVENT_TRANSFER_TX_FAILED"?
Or also vice versa, if the master does not see a message from the slave after an "EVENT_TX", you expect the slave to resend the failed message but it sends a new message instead?