Unfortunately, we do keep running into total deadlocks with this approach under high load. We've had to revert async call processing (with mqueue + rtimer + t_suspend) back to non-async because the deadlocks were growing politically unacceptable.
I never managed to get a backtrace of the state of the processes at the time the deadlock occurs, because the customer would soon restart the proxy when this happened, as it would happen during busy times in the middle of production days. The only core dumps I have are the crashes on shutdown, which strikes me as incidental/irrelevant.