What you're asking for is something like this: when someone does a command, let's say "!test". All other commands will not work for a set period of time, if someone else tries to use "!test2" while the cooldown is active, a timer will start and "!test2" will be used once the cooldown has ended. Upon using "!test2" you also want to set a new cooldown so that the next command "!test3" that was also used while the cooldown of "!test" same as "!test2" will be used after the cooldown of "!test2" ends. Right?
I don't see a way for this to happen dynamically unless you have all your events as aliases. Otherwise you'd have to add a static timercheck on each remote command and that's one hell of an ugly solution.
So if you want this to happen, I suggest you re-do all your current commands to aliases. If you don't know what I mean, see this:
on *:text:!test:#: { msg # $nick used a test }
;would be
alias commandtest { msg $1 $2 used a test }
on *:text:!test:#: { commandtest # $nick }