Ah ha. Instead of passing my sessiond id, I was passing my session alias to the alias_resolve call. Thanks, that solves one of my problems. I'm going to pass the $session1->ID onto the HEAP during create of $session2.
Still wouldn't mind hearing about heap vs global performance/gotchas if anyone cares to shared.
I've looked around and can't seem to find a way to list my current sessions dynamically. Ideally I was hoping for a solution more like this (completely not real code):
foreach my $sess ( @{ $kernel->get_sessions_named('irc_bot') } ) {
print $sess->get_heap()->{USERLIST};
}
TA!