skiflyer - I understand your reasoning.
actually, through a rather heated and convoluted fashion, I found an answer to my problem. If you're interested in how PHP's bug support system reacted to me reporting this to them (it's NOT pretty, not reading for the faint of heart), check out this link at
In any case, for posterity, I'll tell ya what ended up fixing my problem.
I tried individually to, in window "B"s script, change the session_id() and also the session_name(). Neither of the changes alone fixed my problem. But, when I in that second window change both the session_id() and the session_name(), it works fine.
Here's the quirk to understand (as I understand it anyway). PHP has a config in its .ini file which specifies the default session_name for each session. Since its the default globally (PHPSESSID), if you don't choose to change that session_name in a session, you will get every one of your sessions sharing the same name.
Each browser instance (including all its child instances - ie, pop-ups) gets assigned one unique ID that creates the unique session_id (32 character MD5? hash of something, I assume).
So, in cases where you don't specify a unique/different session name for your script to use, it will use PHPSESSID (the global default). When you open up manually seperate instances of the browser, they each get their own session_id. So, their sessions stay seperate even though they use the same session_name. When you spawn a window though (like a popup), you automatically inherit the session_id from your opener, so if you don't specify a new session_name to use, you will be using the same session_id and session_name pair, which means it will get stored in the same session file!
So, to sum it all up, the quirk is that to uniquely identify your new session, especially if its from a pop-up/child window, specify a new session_id AND session_name. Do this right before your session_start() call.
session_name("blah"

;
session_id("blahsession"

;
session_start();
Basically you only need to specify the new session_id for each new child instance once, in the first script that opens in the child window. (each script after that will by default get the newly set session id) You can of course specify it over and over if you want, as long as you specify the SAME session_id over and over.
Keep in mind though that (according to the php documentation AND my experience) if you change the session_name, that is not persistent, so you will have to specify that same session_name in EVERY script that opens in the new child window.
So, the first page has:
session_name("blah"

;
session_id("blahsession"

;
session_start();
and each other page in that child instance should just have:
session_name("blah"

;
session_start();
I employed this in my application and it works beautifully. Hope this helps someone else!