The app consists of two parts: the gui and the daemon.
All action is done in the daemon, the gui only controls it. Meaning you can happily close the app once you configure it. And you can write your own gui which communicates with the daemon using d-bus.
it has a saner architecture (which probably does not mean much for users, but this makes it easier to develop for)
it can wait until current track ends (if the player reports metadata)
it’s maintained
you can close the app, it doesn’t have to be open to work (split of daemon vs. control app) - I only briefly checked the source code of Slumber, so this might be true for Slumber as well
I tested slumber and it does not work when closed for me
Slumber also automatically starts the timer and you cant configure seconds - only hours and minutes
All in all Slumber is worse in my opinion