Hi.
The level of details in your article is exceptions. Thanks for that!
I built a simple tool which speeds up the signals propagation based on that material:
https://github.com/dimikot/signal-fanout
It currently doesn't wait for the processes to terminate (it just fans out SIGTERM to the entire tree when the initial SIGINT is received), but I may add this feature in the future.