My favorite chrome extension pattern is state stored in background page that's communicated with injected content scripts via redux + actions.
You get a crazy powerful state management model that can allow traditional web pages to feel like SPA (your extension around it at least)
It's a shame manifest v3 absolutely butchers this use case because there's no long term live-state management other than opening an extension tab.