Revert^6 "Thread suspension cleanup and deadlock fix"

This reverts commit 0db9605ec8bd3158f4f0107a511dd09a889c9341.

PS1: Identical to aosp/2255904

PS2: Detect and report excessive waiting for a suspend-friendly state.
     Add internal timeout to 129-ThreadGetId, so that we can print more
     state information on exit.
     We explicitly avoid suspending the HeapTaskDaemon to retrieve its
     stack trace. Fix a race that allowed this to happen anyway (with
     very low probability).
     Includes a slightly nontrivial rebase.

PS3: Address a couple of minor comments.

PS4: Reformatted, as suggested by the upload script, except for
     tls_ptr_sized_values, where it seemed too likely to cause
     unnecessary merge conflicts.

PS5: SuspendAllInternal does not hold mutator lock, but may take a
     long time with suspend_all_count_ = 1. Another thread waiting
     for suspend_all_count_ could sleep many times. Explicitly wait
     on a condition variable instead. This intentionally has a low
     kMaxSuspendRetries so that we can see whether it is hit in
     presubmit.

PS6: Adjust kMaxSuspendRetries to a bit lower than the PS3/PS4
     version, but much higher than the PS5 debug version.

Test: Build and boot AOSP, Treehugger
Bug: 240742796
Bug: 203363895
Bug: 238032384
Bug: 253671779

Change-Id: I58d63f494a7454e00473b23864f8952abed7bf6f
26 files changed