Surprised to see the state store caring about events. Checking for a keycode in your system to add an event to a store feels like a violation of separate concerns. That was an immediate turnoff for me with this post.
In our shop where we have built many high-performant, and pretty complex (various types of security tools and all that) react apps, the state is managed at the top-most component and it is passed down to all other components as props. It works great and it is functional all the way.
Neat. Did you get any inspiration from Vuex in creating the store? The global store and building it out of a POJO are pretty similar patterns that I happen to like.