Visit invalid roots of only suspended threads

Since this always happens with suspended threads or self, you can
just visit these threads and do not require a suspend all. This
will not miss any roots if the caller was marking a thread root.

Fixes issues like transitioning to suspended and back blocking on a
thread suspension request from another thread. This could cause
deadlocks previously.

Bug: 29062271

Change-Id: I2fef149387aacf0cdc9a773d4f172c42fa53e4dc
4 files changed