That's true, quickly joining several channels and sending a who request for each channel might do that. The OP could que the who requests...

Code:

on *:START:unset %chanwho.*
alias chanwho {
  ; Usage: /chanwho <chan>
  var %whochans = $eval($+(%,chanwho.,$network),2)
  if (!%whochans) {
    set -e $+(%,chanwho.,$network) $1
    who $1
  }
  elseif (!$istok(%whochans,$1,32)) set -e $+(%,chanwho.,$network) %whochans $1
}
raw 352:*: {
  if ($istok($eval($+(%,chanwho.,$network),2),$2,32)) haltdef
}
raw 315:*: {
  var %whochans = $eval($+(%,chanwho.,$network),2)
  if ($istok(%whochans,$2,32)) {
    haltdef
    set -e $+(%,chanwho.,$network) $remtok(%whochans,$2,1,32)
    if ($gettok($eval($+(%,chanwho.,$network),2),1,32)) .timer 1 5 who $v1
    else unset $+(%,chanwho.,$network)
  }
}



~ Edit ~
Set the timer to the delay you want.

~ Edit ~
Made it multi-network.