So, probably this point has been discussed previously, I'd like to know:> - are there any existing objects doing this already?
There is a creation argument to [coll] in Pd-l2ork that enables threading.
- what are the pitfalls that prevented such an approach from making its way into Pd?
The second biggest pitfall is that such an approach can easily (and subtly) break determinism. The biggest pitfall is overestimating the benefit of the performance gains to the detriment of determinism. Can you guarantee that the revisions you've implemented generate the same output as Pd Vanilla, for all cases?
A good place to start might be regression tests for block~. I'd especially look at cases that use vline~ in conjunction with it, using very small delays, and make sure that you are getting the exact same samples output using your revised objects.
-Jonathan