=str #16263 dont use sameThreadExecutionContext when cancelling stream

Some fixes to the stream cancelling, most notably:

* don't use the same thread execution context - it's precondition may have (and did) failed in some situations (when the thread was NOT from BatchingRunnable.run it seems...)
* use normal dispatcher (as configured or the parent actors if not configured explicitly) instead
* when the termination mode is `noop` don't even start the scheduled events - special always-true `SubscriptionTimeout` object introduced for this to spare allocations.
* we just support publishers - so expressed this in the type of the Future (was `[_]`)
I think an `if` would have better readability than `&&` here