@whale-av Hey, c"mon, I went obsessively deep on this topic, remember? And you came along for at least part of the ride.
https://forum.pdpatchrepo.info/topic/13512/s-r-throw-catch-latency-and-object-creation-order
Actually, I don't blame anyone if they didn't follow, it was pretty mind-numbing.
You need [throw~] to run before [catch~], but simply creating [throw~] after [catch~} isn't enough. The head of its audio chain has to be created after. So here's an example where [throw~] was created after [catch~] but it still has a 1 block delay:
catch~throw~test.pd
#N canvas 761 75 604 489 12;
#X obj 89 58 phasor~ 1;
#X obj 108 189 catch~ something;
#X obj 90 227 -~;
#X obj 90 301 snapshot~;
#X floatatom 90 325 5 0 0 0 - - - 0;
#X obj 127 248 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000
#000000 0 1;
#X obj 127 268 metro 100;
#X obj 89 82 *~ 44100;
#X obj 109 124 throw~ something;
#X connect 0 0 7 0;
#X connect 1 0 2 1;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 5 0 6 0;
#X connect 6 0 3 0;
#X connect 7 0 8 0;
#X connect 7 0 2 0;
Cut and repaste [phasor~ 1], connect it back to [*~ 44100] and the delay goes away.
If you look at audiotest.pd in @ingox's msend~.zip you can see that [osc~] was created last, therefore runs first, and therefore that interesting solution (that I need to study) shows no latency.