Yes, we touch on a well explored problem of establishing state in a distributed system (the Byzantine general problem).
the git protocol does a really good job of preventing unintentional force pushes as the state can be managed in a single place.
I originally had the remote helper push to the git servers first and only update the state event once it was accepted by all git servers listed.
But then in order to support the flow where the git server is waiting for the state event to authorise the push I started issuing the state event first.
It minimises the changes by fetching the state from all git servers immediately before issuing the state event and rejects the change if the commits can't be fast forwarded.
but if another maintainer pushes after I have completed the fetch and before I have completed the push then the state event would be out of sync with the git server.
I'm was thinking about having a `nostr.use-nostr-for-state` git config entry flag that defaults to true so that maintainers could use the remote helper without the state event element.