Scheduled action no interrupt

At the end of the run, ScheduledAction unsubscribes itself which triggers a set of cleanup actions, and since it is also the way to cancel a running action, it calls future.cancel(true) as well which interrupts the task in the underlying executor framework. However, on a normal completion path, it is unnecessary to interrupt itself at the end of the run since it will complete anyway, and not to mention, it has some performance implications for short running tasks. The downside is the +4 bytes per ScheduledAction.
But why shouldn't that be left to the Observable to add that interrupt support instead of us interrupting everything?

Inside the Observable.create a developer can register Thread.interrupt to be done onUnsubscribe via `add`.

Interrupting by default has caused issues at least twice now. The use case in #1804 was really odd and honestly not something we should ever have to be concerned with.