We call the Joomla logout function directly. After which the session is reset. Once that's done we store the new session. This on logout generates a guest session. I've confirmed this is the case on logout for J2.x and J3.x. My guess is your extension isn't using Joomla API properly in some instance.
During this entire process we are using strictly Joomla API. More specifically the following is done.
Code:
// Perform CMS logout, which will destroy the session:
JFactory::getApplication()->logout();
// Restart the session since it has been destroyed:
JFactory::getSession()->restart();
// Save the new session to storage:
JFactory::getApplication()->checkSession();
Please note the Message Queue does not work on logout. So if a message is being queued before logout it will be lost. This is due to session being lost. Queuing a message on logout will just result in the message being shown on next page load, which for example could be next login if you logout and immediately log back in.
With that said I can't see how your issue has anything to do with CB.