wait for 5 blocks (may need more) to preserve order of transactions.  The issue appeared to be that txN was mined, txN+1 was NOT mined, there was a reorg at txN, so txN is resubmitted but txN+1 is not resubmitted (the txN+1 submitted would then have headerN+2, and there is no tx that stored headerN+1).  The simple "solution" this approach takes is to wait for more blocks before submitting txN+1, to increase the chances that txN+1 will be on the main chain and minimise chances of reorg.
wait for 5 blocks (may need more) to preserve order of
transactions.  The issue appeared to be that txN was mined,
txN+1 was NOT mined, there was a reorg at txN, so txN is resubmitted but
txN+1 is not resubmitted (the txN+1 submitted would then have headerN+2,
and there is no tx that stored headerN+1).  The simple "solution" this
approach takes is to wait for more blocks before submitting txN+1, to
increase the chances that txN+1 will be on the main chain and minimise
chances of reorg.

ethers/dapp-bin,ethers/dapp-bin,ethers/dapp-bin,ethers/dapp-bin