I greatly respect the work you've put into Gun, but I will stand by my assertion.
Horizon is abandonware (no commits for months), and Gun doesn't even handle unsubscribe-on-unmount in either its official React examples https://github.com/amark/gun/blob/master/examples/react/src/... or in graphql-gun https://github.com/brysgo/graphql-gun/blob/master/react/inde... ... which would lead to memory leaks since the callback still holds a reference to the component instance. In fact, the API documentation doesn't even mention a way to cancel a subscription.
(It's true that Gun's offline-first approach is unique, but with mobile connectivity these days it's not often a requirement for B2B applications.)
Regardless, for both technologies, these are indications that neither has the professional backing that Meteor has enjoyed, and continues to enjoy, throughout its history. A real-time contender to watch with that type of backing is deepstreamhub.com which is significantly closer to having a professional-quality realtime product... but it's only recently released, with a nascent open-source plugin/tutorial ecosystem.
Again, all of this is in the context of the following advice: Build a best-in-class React (or Angular) app, with routing/organization/testing taken from best non-realtime practices in those ecosystems, and have only a small number of containers depend on, and declaratively subscribe to, any specific data layer. As the real-time data ecosystem changes, migration between platforms can be restricted to minor code changes in those containers... in which case it makes sense to choose a framework that provides a stable platform well supported by documentation and amassed questions from years of usage.
I hope to see Gun become a legitimate choice in the near future! But I need to bet on the horse that's miles ahead in the race.