as someone who design coin economics and blockchain feature sets since 6 years and study very careful what others did do and take into account lessons learned from multiple codebase changes and coinswaps of projects im involved i can give 3 prefered paths:
path one the easy one:
need support of exchanges explorers coinmarketcap platforms
a snapshot at date xy 1 day pre snmapshot all exchanges disable deposit and withdraws 2 weeks later the exchanges enable deposit and withdraws again meanwhile new chain started and all exchanges converted . all addresses with balances on old chain snapshot date get transfered the same ammount at new blockchain start transfered (its not opt-in everyone gets it) all exchanges and explorers all coinmarketcap trackers replace old XEM with new XEM. even if technical two chains exist an old abandoned one and a new one in reallity only one chain with coins stay existing since u use same coin name and all important 3rd party support the swap.
pro:
easy to do
done well it avoids a 2 chain 2 coins szenario because zombie chain dies a risc of an XEMclassic chain is low as NIS closed source noone can maintain it without open source
from legal point of view u can see it as no event as the same coin name is used and the same private key owns it and by all supported 3rd party exchange the new one replace the old one. it can be seen as a mandatory network upgrade with keeping balance but removing history. same as in all mandatory wallet upgrades the non upgrades nodes and their coin balances are seen as invalid. a valid fork coin only start to exist if there is a dev team supporting non upgraded nodes and they give themself a new coinname in that case they are the NEW coins with new name and any legal questions regarding tax relevant event is targeted at them
mossaics and namespace could i hope be migrated towards new ruleset
contra:
coins migrated but services transactions any history is not.
a possibility that a 2 chains 2 coins szenario can happen is not total out ofg scope even if unlikely if done well
its way weaker solution then make a mandatory node upgrade and still keep history events of old blockchain
all services that did write data on chain lose old data access but they have a history available in old blockchain copies so there would be ways to read and migrate must have events data
possible issues with multisig u need to transfer migrate multisig relevant data (whats keys can sign for what)
path two the dream szenario:
here u make a mandatory wallet upgrade that is able understand NIS created blocks and messages and catapult created blocks and at trigger block xy catapult type blocks and rulesets are active still NIS created blocks can be read so u have full access to history.
pro:
no question at all about 2 chains risc because no new chain is started
no question regarding tax relevant events because no new coins or ownership change happend
no question regarding transaction history or by services created assets and blockchainentries as all history is readable no data lost
contra:
additional dev work needed to teach new client for few days create old blocks and forever read old blocks
even if history is readable services and apps need to adapt their software to use the new catapult comands and api
path three the interesting 2 chains one coin path:
u could start catapult chain without coins and have an bridge that allow transactions between NIS and catapult chain . have a look on xDAI blockchain which did follow that idea they started without a native coin and all of the native currency is created by transfer DAI over a bridge from ethereum. as i think cross chain transactions is a part of catapult skillset this should be in reach only need to teach old NIS to do that too. u could make it one way only or even bidirectional. in any case a XEM is a XEM no matter if he runs on NIS or catapult chain because all together on both chains we have the coinlimmit of 9 billion.
pro:
no tax relevant events just transactions
no instant shutdown of NIS based chain all services and apps stay working
free choice for projects when to migrate
free choice of exchanges what chain they have listed because currency is same worst case user need to move his coin towards the chain exchange supports (still ideal most exchanges move to new chain but like one stay supporting direct deposit from old one)
contra: old chain will lose importance more and more and after some time u spend energy to keep it alive even if noone really use it any longer