[sgen] Fix a thread startup deadlock on POSIX.

If the GC stops the world and a thread is in the process of starting
up, but has not yet registered (it's not in the thread_list), it is
possible that the thread does register while the world is stopped.
When restarting the GC will then try to restart said thread, but since
it never got the suspend signal, it cannot answer the restart signal,
so a deadlock results.

This is triggered by `tests/sgen-bridge.cs`, about once every 10 runs.

We solve this by using a negative value in the `signal` field in the
thread info to indicate threads that have never been suspended.