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.