There is also nala, which _does_ automatically remove dependencies when you remove a package: https://github.com/volitank/nala
It has also a useful 'aptitude why package' to say why a package is installed and a nice TUI (which is optional; for the most part it works very similar to apt).
However, the package could of course still be used by unpackaged software or local scripts.
That looks like an unnecessarily long process to safely remove a package. Why isn't that the default behavior on Debian?
And aptitude (alternative package manager) automatically removes dependent but not required anymore packages when removing/purging a package.
In the current thread, I'm only nit-picky about this, because OP said "Last time I tried `apt`, it would uninstall apps without cleaning after itself". To which to suggest that apt-purge does clean up after itself is incorrect. It does some additional cleaning-up, but it doesn't do a complete cleaning-up.
That being said, of all the package managers I tried, I still like apt the best. I feel like it's the most straightforward and user-friendly of all of them.
Do you have a use-case where packages are regularly uninstalled? I usually only install.