Bug fix in stream forwarder - calling Stop from another Thread should block only until Run exits; rather than waiting for the running Thread to complete in its entirety (which won't happen at all using System.Threading.Tasks).  Current solution works but is a little unwieldy - will revisit...