Run Goal as an interrupt in the context of Thread. This is based on
thread_signal/2. If waiting times out, we inject a stop(Reason)
exception into Goal. Interrupts can be nested, i.e., it is allowed
to run a call_in_thread/2 while the target thread is processing such
an interrupt.
This predicate is primarily intended for debugging and inspection
tasks.