А в чем прикол именно такой неудобной и громоздкой реализации? Вместо того, что по человечески сделать автоматическую подписку/описку используя getters/setters например как это делается в MobX и использовать просто минимум кода и оптимизацию рендера из коробки.
Как сделать свой собственный менеджер состояния в React всего с одним хуком