Please test it on your website.
Create a test profile, under admin, put your site under maintenance and try to login as a test user.
1. I created a test user and logged in to my site using my phone.
2. I logged in as admin from my computer and put my site into maintenance mode.
3. I closed the web browser on my phone without leaving the site.
4. I waited for half an hour.
5: I loaded mysite.com/users as admin on my computer. The test user didn't seem to be online.
6. I restarted the web browser on my phone. When it tried to reload the last page, the maintenance page showed up.
7. I loaded mysite.com/users as admin on my computer. The test user now seemed to be online.
I guess this means that even though users may turn up as logged in on the mysite.com/users page while the site is in maintenance mode, they cannot do anything else than changing their status from logged out to logged in.
After 30 minutes of inactivity the users is automatically logged out.
If he is not, that means your cron is not properly configured. Please do the search on the forum regarding the issues with users staying online and cron configuration
This topic has already been discussed many times.
What do you mean when he eventually do something several hours later - what can this user do if he ends up on maintenance page everytime he tries your website, until you disable maintenance mode.
if it gets enough voices we'll consider changin this behavior. in the meantime this is considered as a custom code modification, you will need to do that on your own or hire a programmer to do that for you, you can do that here: http://www.oxwall.org/market/specialists