To add why: the ecosystem is immature. I am building a decentralized app (the old way) but with an event sourced architecture (append-only list of JSON events/commands).
The storage itself is trivial but for everything else (queries, syncing, conflicts, validation, permissions, schema changes) there's little support and I had to make my own stuff. It works for me, because because I only have 2-3 entities but your app is much more complex, so I wouldn't recommend it even if you started from scratch.
I will say that there's nothing that really stops offline aside from ecosystem support and maturity. All it really takes is a medium-big well maintained project that solves 80-90% of use cases. I think CRDTs are promising for the data layer because it simplifies the API surface (at the expense of complex implementation).