Here is a way to set the site offline with a customized message to everyone visiting it. The administrator, user 1, is always allowed to access the site so he can do whatever he wants, while everyone else is not.
There is currently one drawback to this patch: You can lock yourself out of your own site! If you are logged in as admin and turn this setting ON, you will be fine. However, if you log off, you will NOT be able to login back.
The workaround for this is easy: in settings.php, you can have the following to override whatever is in the admin menus.
$conf = array( 'site_offline' => 0 );