Did you not read my explanation? No, that's not the reason. A web server is unable to know if a web page is currently being viewed. Just the last time it was viewed.
Please, people need to stop posting in here unless they know how users online statistics are generated, because I'm tired of explaining it. >_<
I mean, no offense, 'cause I'm sure I thought the same thing before, but it's not the case, as I'm sure I've said at least three times now.
So why can't you change it? Do you not have Admin CP control? You should at least be able to do so through a custom MySQL query or phpMyAdmin.
I might be wrong - but when I do transactions through PMs, it says the username is online, so I know they've received the PM. However, when I look at their profile, they are staying on one page, and that same page about 5 hours later. So it does not expire.