You still need it because there's no such thing as a persistent service worker and those workarounds have limits as described in the page you've linked, so the worker can terminate. You can maintain the state in a storage like chrome.storage.session if 1MB is sufficient or chrome.storage.local or IndexedDB for types like Blob, ArrayBuffer, UInt8Array.
Note that you shouldn't use that workaround just to simplify state management. Use it only to undo the performance dip incurred by restarting the worker in case your state is very expensive to rebuild or if you hook into frequent events that cause the worker to restart hundreds of times a day, which wastes orders of magnitude more resources than keeping a persistent worker in idle state.