I am having the same exact issue. One workaround I have found for the time being is to use browser.tabs.sendMessage or browser.runtime.sendMessage.
For example if popup.js is updating the local storage and your content.js wants to listen to those changes you could send a message after updating the storage or even pass in the new storage itself.
// popup.js
// notify current tab with new settings
browser.tabs.query({ active: true, currentWindow: true }, (tabs) => {
	 browser.tabs.sendMessage(tabs[0].id, newSettings)
})
Afterward, you can listen to this message notifications like so:
// content.js
browser.storage.local.get(['settings'], (result) => {
console.log(result.newSettings)
})
Topic:
Safari & Web
SubTopic:
General
Tags: