Use Gateway Tag Change scripts instead of tag Value Changed scripts. The latter are limited to a thread pool of size 3, so it is recommended that any script execute quickly (single-digit ms), and the former does not have that limitation.
I didn't realize this until fairly recently. We had many Value Changed scripts that ran in the dozens if not hundreds of ms. We also were seeing a few "Slow Response" events per day. I doubt it's a coincidence that since I converted most of these scripts to Gateway Tag Change I have yet to see a single SR event.
Since GTC events cannot be applied to UDT instances, this can be challenging. I was able to make use of the fact that GTC tag paths can contain wildcards, but other solutions have been discussed: