Okay ... it's waiting on a mutex of some kind, and it has a three-second timeout. That much we know. But, what happens "consistently, 18 seconds into the run," in your application logic? What does it do ask-for differently at that one point in time, and only at that one point in time?