Naming is unfortunately messy here.
Circa 2010 or so there was an earlier proposal for each origin to have two storage namespaces, "PERSISTENT" and "TEMPORARY". The only APIs that exposed this split were the Chrome-only webkitRequestFileSystem API and webkitStorageInfo/navigator.webkitXXXStorage APIs. Other APIs (WebSQL, Indexed DB, Cache API, ...) implicitly use the "TEMPORARY" namespace.
That was abandoned, and apart from those legacy, Chrome-only API surfaces and plumbing in the code, what was called "TEMPORARY" is now just referred to as the origin's default storage bucket in spec language, and behaves as I described earlier in the thread. By default the persistence is "best effort" but a permission can be granted elevating it to "persistent".
It's best to ignore the legacy "PERSISTENT" if you can, otherwise think of it as some strange parallel universe of storage.