Precise handling of exit signals

Abnormal exit signals may terminate a process at any point. Therefore they race
with any other built-in that the process may execute. However, the process may
also be waiting for a normal message, in which case there is no race (the
process cannot 'continue' without receiving the signal). Therefore we need to
know if a process can continue beforehand. Hence the change in the
instrumentation: processes are free to run until it is clear what they are going
to do next. If they are going to be blocked by a receive statement, this is
reflected on their exit status and no race with an abnormal exit signal is
reported.