The first place to check what might have happened is the SQL Server errorlog. Since you have restarted SQL Server, that would be ERRORLOG.1.
When an issue like this occurs, you should look in the current errorlog. Since the instance is not responsive, you would need to open it from the file system.
There might still be a possibility to connect to the instance in a situation like this. You can connect on the Dedicated Admin Connection (DAC) which has a reserved scheduler, which should respond even if the server has run out of schedulers. By the default, the DAC is only accessible locally, so you need to RDP into the machine. In SSMS you say ADMIN:.\INSTANCE. Beware that the DAC is only one single connection, so connect with a query window, not with Object Explorer. Also, you are likely to get an error when you connect, because the connection for intellisense will fail. Once connected you query DMVs, check activity etc, and you can kill processes you think are dispensible.
Then again, if the errorlog has a dump about hung schedulers, you may have no choice but to restart SQL Server.
To have a check that SQL Server is running, you could write a short Powershell script that runs from Task Scheduler every five minutes or so, and which sends a mail if connection fails.