If you use $active, it will attempt to msg to whatever window is currently active. If youre not sitting right there changing active windows, then it just msg's whatever window you walked away leaving active... channel, query, whatever. If that window is your status window, it will try to message it there... which will just give an raw error, 'status' no such nickname, or something like that, as you would be trying to msg 'Status Window' instead of #channelname.
If you want it to msg to all channels, use /amsg.
alias idlemsg {
.timeridlemsg 0 300 if ($idle > 300) { amsg 3I am currently joing the ranks of being an Idle Chat User! 7 Say my name if you need me. :) }
}