Hi,
I think problems come from virtuemart, here is why
After an user complete registration virtuemart automaticaly login this new user , even if you have set account confirmation.
Basically if the user ignores the message about activation, can move on to complete payment without activate account
I verify user status immediately after registration and surprise, JFactory::getUser()->guest return 1 and in the same time JFactory::getUser()->id return userid.
Also I verify user manager in admin area but there are no logged in users

Virtuemart practically see the user is logged in, but sees not logged in Joomla
I do not think it's normal for Virtuemart to log a user whose account is not activated yet, so I think the problem is still somewhere in the Virtuemart files