I can only tell you what I know. I am a user of Cirrus Link MQTT.
I’m in the Oil & Gas industry and we developed our own “Network Edge” device but it was developed with
the purpose of making sure we could communicate with Ignition and the Cirrus Link Mqtt module using the SPARKPLUG B ( 3.1.1) protocol.
We now have several of these devices out in the oilfields in very remote locations (some even using Solar Power) and they all publish/subscribe their TAGS to our Ignition sever “Flawlessly”.
The support from Ignition - Cirrus Link has been outstanding, I could ask for none better.
Mosquitto is a MQTT v3.1.1 compliant MQTT Server so it will work fine. Of course with Chariot or MQTT Distributor you would get support from Cirrus Link. Also they are easier to configure than Mosquitto is. Even though Mosquitto is a very good open source project I have seen versions with issues. So, I would strongly recommend doing thorough testing on the version you choose to ensure reliable performance.
Are there any functional differences between these two servers, or is it mainly that Chariot server is more integrated in the Ignition platform? and as mentioned easier to configure.
We have been using mosquito for development so far, and I do not think there are any functional changes between them. We are experiencing mosquito and sparkplug as stable. Uptime since install is 70 days (100%).
I wish that cirrus link would integrate server statistics, embedded alarming, and more as default when using both engine and distributor. At least then one would have some advantages when going full cirrus