I would add a second non-SharePoint IIS Web Site with a host header that
nearly matches your SharePoint site with a simple default "under
construction/maintenance" HTML page in the root. When you go to do
maintenance, simply redirect all traffic from the SharePoint site to the
non-SharePoint site by changing the host headers on the IIS Web Sites
(or even better by changing a firewall, ISA, or proxy server rule). When
people attempt to go anywhere in the site including deep down links you
can configure IIS to just show the "under construction/maintenance" HTML
home page.
In short, while under maintenance, redirect traffic to a non-SharePoint
site. What's great is that this site can have host headers for all
site's that could be offline. There could be a dozen sites all under
maintenance simultaneously all pointed to the "under maintenance" site.