One viable alternative for thunks and sagas that I came up with is using async functions and explicitly getting/setting state: https://github.com/riptano/statium#viewcontroller
Still a long list of chores to improve API, tooling, etc but very performant and battle tested.