This is an interesting case but full disclosure: I never needed or ever considered anything of the kind so my opinion is "from the top of my head" for what it's worth.
If your "differentiator" is really just have the visitor use another tab in the same browser, then using multiple sessions seems like it wouldn't be the best option because sessions are mostly automated by the browser<->server through cookies/user agent/ip/etc. I'm sure there's some way to do it just with sessions (maybe), but personally and by giving it less than 5minutes thought I would do it like this:
I would use just a single session, and then maybe use separate session array keys for doing very basic state management. Then I would use an F3 route parameter (or a GET variable) to determine what the "active" or "in use" character is.
This would allow a visitor to (for example) open a tab on /character/char1 (or /character?active_char=char1) and another for /character/char2. Your code would have to depend on this last parameter in order to do it's thing.
If you ever need to save stuff in session, with this method, you can just save it inside $_SESSION[$_GET['active_char']]['something'].
Just my $0.02. I'm sure there's a lot of different ways to accomplish this, but imho, using different sessions is probably not the most efficient one.