Factor out the pre destination retry logic from TransactionQueue so it can be reused in both get_pdu and crypto.keyring