Revert "Revert^8 "Thread suspension cleanup and deadlock fix""

This reverts commit 221b6c5fcd66d4b6f2626c311d03bde2fb1589f9.

Reason for revert: Preemptive revert. Earlier versions have had a tendency to cause subtle breakage.

Please do not submit unless something breaks.

Change-Id: Iad2a7f920756f365789c422948632f5db5a28fd5
29 files changed