Cool idea! It might be a bit tricky to setup, but I think you need two stores, one in the main 'thread' and one in the webworker. The main one should just serialize and forward to the webworker one. The other way around, you would need to sync the observables back. Probably by using 'observe' listeners on each node.
I think on the other hand this would be very easy to set up with 'mobx-state-tree', where you can simply sync patches or actions (see also the talk). But note that the package is still experimental