Implement context-preserving thread

Add threading back to toplevel
Timeout message is too verbose after fixing thread context, when using .interactive()