My contribution to the discussion:
Something you could use to debug issues / detect weak points is a tracer.
This book by Dick Sites (Early Google Engineer) goes over the design and use of such a tracer: Understanding Software Dynamics (review: https://www.usenix.org/publications/loginonline/understandin...)