Has Docker ever garantied that if a project closed is account another hostile one wouldn't be able to reuse the name? Outside of name takover, you could have been pulling abandonned non updated images for weeks/months without knowing it.
Now I have a small GitHub Action project that mirrors from hub.docker.com to a private registry running on fly.io. Took all of 10 minutes to set up and now I don't have to worry about getting throttled or docker hub going away.
The best (automated cleanup, permissions management etc.) in my opinion is something like Sonatype Nexus: https://hub.docker.com/r/sonatype/nexus3/ which also handles various other formats, not just OCI containers.
Others might also suggest looking in the direction of Harbor: https://goharbor.io/ but it's a bit more complex.
Here's an approximation (slightly outdated, but close enough) of how I run my own Nexus instance: https://blog.kronis.dev/tutorials/moving-from-gitlab-registr...