i use raws to join all my chans. You just need to set how to join the first chan, I have it set to join after my vhost gets set.
Code:
#rawww on
on ^*:notice:Your vhost*:*: {
  if ($nick == HostServ) {
    .enable #rawjoin
    timerbotzjoin 1 20 /join #chan1
  }
}
#rawww end
#rawjoin off
raw 329:*: { 
  if ($2 == #chan1) /join #chan2 
  if ($2 == #chan2) /join #chan3
  if ($2 == #chan3) /join #chan4
  if ($2 == #chan4) .disable #rawjoin
}
#rawjoin end

That has always worked for me.