I'm thinking outside the box here. So I'm aware that bitcoin is the main desirable chain here, however bitcoin should be also thought of as the sha256d network of hardware.
What is the feasibility of in-addition to bitcoin, omnicore is copied and also run on ixcoin and i0coin to take advantage of these two bitcoin merge mined coins. (lets ignore that these chains need to have majority hash running the new versions that can support this)
Omni could act as a routing protocol for transactions that go to the appropriate chain, maybe atomically, maybe with a decentralized exchange. But omni would live in 3 places and communicate with each copy and respective chains.
In general I think this is an interesting idea, and in theory, as long as a coin has a mechanism to publish arbitrary messages, in one way or another, it should be possible to port the protocol.
However, I see a practical issue: if the global state is shared across multiple blockchains, then it would be mandatory to continuously keep up with all chains at the same time. Primarily, this has an impact on the resource consumption, like disk space to store the chains, and right now Omni Core requires a full copy of the Bitcoin blockchain, with enabled transaction index.
This is pretty wasteful, given that only a fraction of all (Bitcoin) transactions are Omni/Master transactions. It's one of the things I have in mind for some time, and while Omni Core isn't ready for it yet, the preperations were done during the class C/OP_RETURN integration, to support a no-txindex mode, and ultimately to support block pruning. This would at least tackle the space requirements, even though the additional processing of other chains would still be given, and I don't see an easy solution for it at the moment.
Another question that comes to my mind is the following: how are multiple chains synchronized?
While Omni transactions are unconfirmed, the state is fuzzy, and may change at any moment. Once transactions confirm, their order within a block determines the sequence of actions. But if there are multiple chains, then it basically comes down to the question: which block happend first? Bitcoin block xxxxxx, or XYZ block yyyyyy?