You are just running one restaurant, you don't need an over-technical solution.
Let's get realistic here. The best fall-over for a restaurant is that you need to train your staff how to use a manual (pen & paper) system in case there is any technical fault. The skills to use a manual ordering system in a restaurant is very important. Have a calculator at each register and ensure that there is a way that the tills can be opened by the person in charge at the time without the application. Your security system to watch over the tills should be independent from the servers used for your register software so that the tills don't become free reign if the server goes down.
If you really insist on redundancy from a technical level, use two physically separate servers. No Dual-PSUs, etc. this won't protect you from all faults. Only the HDD should be in a RAID mirror (not just because they are unreliable, but because it is a lot of work to rebuild a server from scratch if a drive fails), and only two servers (geographically separate if possible) will truly protect you for whatever goes wrong, so instead of buying a really expensive $10,000 server that has al the redundancies built in, buy 2x $1,500 servers (total $3000) that don't have this but are both powerful enough to do the job.
Then set up whatever fallover however you like and depending on your application requirements. Maybe the register application doesn't playa nice with SQL clustering or having two instances installed on the same network - I don't know your application. Maybe you have a parallel install of everything on the second server, and the SQL database mirrors/replicates every half an hour. Maybe you use VMware fallovers. Maybe you have a Cold Server (Microsoft don't charge license fees for a Cold Server so this will only cost you for hardware) and if the server goes down you have a set procedure for your staff that if they have a problem, for them to follow instructions to switch off the Main server and switch on the Cold server.
If you have the Main server constantly backing up the SQL Database to an external HDD, you could also include in your instructions to pull out plug with the "X" sticker from the front of the case and plug it into the box in the other room where it has an "X" on the similar looking box (really dumb it down for them) and then press "Y" (the power button) and have a script setup that automatically restores the database from the external drive when the server loads. The scripting for this would be so basic it would take you 5 minutes of looking up how to make a job in task scheduler, how to make a script run at startup and how to use the SQLCMD command to backup/restore a database.
Sure there would be manual steps and there is a small amount of downtime during those manual steps, but you will save thousands in not having to relicense Windows Server, SQL Server (if you are not using Express) and CALs.
relinquishing my mod points for this post.