Really excellent work. The first time I've been able to understand all of SSIS' moving pieces.
I do have a question. The example states the thrown error code is 8. When I run it using VS 2019 and SSIS 16.0, the thrown error code is 6. Is that a typo or a change in behavior since you wrote this article?