We're not missing better reactive primitives, we're missing native immutability
Some of the newer frameworks have attempted a better reactivity story than what react offers (Svelte is an obvious example), however there's footguns everywhere (array.push(), etc). Increasingly people are turning to Proxies to get around these limitations but it's just more magic and indirection.
If we look at why state management gets annoying in react, it's the pass by reference semantics. UseMemo and UseCallback infect every corner of a codebase. Why? You have no way to know if the hooks you are using do the deep-equality bullshit for you, or if you're expected it do it yourself.
Would our lives be dramatically easier if {foo: "bar"} === {foo: "bar"}?