The solution is to fork when two different special interest groups with different use cases diverge on policy preference.
Unfortunately there is an unfounded stigma in the public's eye that forks are a bad thing.
If a money supply forks and two money supplies develop, it is better for everyone. There is a net gain increase in money market cap, entrepreneurs who invest in both profit. Money users in both enjoy lower transaction fees than otherwise possible.
If one branch immediately dies, its just an insignificant short term problem for the entrepreneurs mistakenly invested in it.
The only thing I request is better replay attack prevention. I'd propose each branch use the transaction version bits for a sort term solution. Long term if there are lots of forks, then use a "Pre-TX branch ID" that is not part of the TX ID, but is signed on by the witness data, and part of a SegWit style merkle tree commitment.
If Unlimited doesn't want to adopt such a merkle tree commitment in the coinbase due to asicboost, but we still want two separate merkle tree commitments for with and without Witness/branch data, then a hard fork that has these two merkle roots under the merkle root commited in the block header could be used. Such could be used to develop additional extensions like SegWit that Gregory Maxwell was concerned asicboost usage would prevent.
Cheers,
Praxeology Guy