Right. As I noted in my original post, it appears that each tab has its own set of global variables. And when I use Connect-VIServer in two different tabs to two different servers, each tab has its own $global:DefaultVIServer variable seemingly set to the appropriate server - as one would expect.
However, as soon as I try to actually execute anything (i.e. Get-VM), the error occurs on the oldest invocation of Connect-VIServer while the newest execution always works just fine.
Just to confirm, when you say you tested this and it all works for you, you did try steps 9 and 10 in my reproduction steps and execute something (i.e. Get-VM) in each tab and those both work, right? You didn't just confirm the values in the $global:DefaultVIServer(s)?