If there is a pending network upgrade, we know that the mempool will be flushed when the network upgrade occurs. We should clarify handling of the mempool at network upgrades in a ZIP, and then ensure that zcash_primitives and zcash_client_backend respect these rules.
Does it make sense for wallets to submit transactions for inclusion in post-upgrade blocks, by creating them with the post-upgrade transaction version & consensus branch id if the transaction would otherwise be rejected because of expiring-soon rules? Should nodes accept post-upgrade transactions to be held in the mempool until the activation block?