Well it might be the long way around it, but having a timer with an alias could accomplish this.. Ex:
/ban <params>
.timer [ $+ [ <nick> ] $+ ] . [ $+ [ <chan ] ] 1 <delay> /unbanUsr <chan> <nick|mask>
then have the timer point to something
alias unbanUsr {
if ($2 isban $1) /mode $1 -b $2
}
its a long way around it, but its possible. I myself had to rewrite a few mode changes for a revenge script i had made. The problem was just after i'd have been kicked i'd get several messages saying "you are not a operator on this channel", "no external messages", etc. Iw ould have to wait for them to all clear before i could rejoin and clear the problem user.
Well, my script worked by like taking the long way around.. Maybe this can help you. >:D