Two sections of your script can cause infinite loops.

Code:
    if ($ulist(*,10,%b) !ison #) {
      //echo # %b $nick(#,%b,o)
      .ruser $v1
      inc %b
    }


You should inc %b outside of the if statement.

Code:
    if ($gettok(%play.list,%b,44) !ison #) {
      set %play.list $remtok(%play.list,$v1,1,44)
      inc %b
    }


Same for this.