Stack decoding stress test fails in a variety of ways
This program spawns 100 worker threads and 100 decoding threads, if run with `-N`, it quickly leads to a variety of assertion failures.
```
module Main where
import GHC.Stack.CloneStack
import Control.Monad
import Control.Concurrent
import GHC.Exts.Stack
fib 0 = 1
fib 1 = 1
fib n = fib (n - 1) + fib (n - 2)
worker_thread n = do
print n
print $ fib n
worker_thread (n + 1)
decode_thread tid = forever $ do
snapshot <- cloneThreadStack tid
decodeStack snapshot
main = do
tids <- replicateM 100 (forkIO $ worker_thread 10)
mapM_ (forkIO . decode_thread) tids
print "Press any button to exit"
getLine
```
Compiled with
```
ghc Test.hs -threaded -debug -rtsopts -fforce-recomp
```
Run with
```
./Test +RTS -DS -DZ -hT -i0 -s -N
```
issue