A sitecore restart takes anywhere from 2-5 minutes. Many other CMSes have a screen show to clients while the restart is taking effect. Is there any way to do this in sitecore?
There is nothing out of the box with Sitecore that provides this. What you are needing is a feature built right into IIS!
https://docs.microsoft.com/en-us/iis/configuration/system.webserver/applicationinitialization/
Here is an example configuration from the article describing the use of a default page during startup.
<system.webServer>
<applicationInitialization
doAppInitAfterRestart="true"
skipManagedModules="true"
remapManagedRequestsTo="filename.htm">
<add initializationPage="/default.aspx" hostName="myhost"/>
</applicationInitialization>
</system.webServer>