I figured out why.
If the client who issued the RESTORE DATABASE command disconnects during the restore, the restore will be stuck.
It's odd that the server, when told to restore a database by a client connection, will not finish the restore unless the client stays connected the entire time.