In macOS, apps tell the OS whether they're capable of perfectly restoring their state after a reboot.
If you, or the system, initiates a reboot/shutdown, and all apps that you have running are such apps, the reboot will just happen, with no further confirmation.
If, however, any app that you have running does not assert that it can be perfectly restored after reboot, then the OS will pause the reboot process and prompt the user to confirm that they want to shut down said app. If the user says no, the reboot is aborted. If the user does nothing (or isn't there to respond), the computer just stays stuck on that prompt forever.
I don't see anything wrong with such a "conservative" auto-detection system, personally.