I am not entirely sure if this is correct as my experience with them is limited, but dont signals use a seperate thread than the regular events, so that if you pass something off to a signal mirc can continue to operate while the signal is processing. (ie wont pause mirc while using findfile etc)

If this is the case, then maybe signals could be extended or whatever to support some more advanced features such as multithreading and so on.

As far as the general scripting language is concerned, with events and such, i dont think multithreading would be a good idea for the simple fact that it could cause ordering issues.

I have also always kinda assumed that each connection id uses a seperate thread for script processing already ? If not would there be any problems with implementing this so that a timely script called from one cid would not cause a pause over other cid's ?

I have very little knowledge how mirc handles these things internally so im probably far from accurate ;s