Apparently the answer to the second question is quite easy, use schedule(task, InterruptException(), error=true)
instead of Base.throwto(task, InterruptException())
(See the very bottom of this page.)
Although I am still curious as to why the infinitely hanging call, if that is used a non-limited number of times within a program would that eventually clog up memory with records of tasks/threads that have throwto()
blocking them?