Re #7843. Cancel any already-running alg if a new one is started.

This avoid the temporal coupling where a user needs to know that they
ought to call cancel before starting off an algorithm.
Re #7843. Run StartLiveData asynchronously when start is pressed.

The StepScan algorithm itself is fast so there's no real need to make
that asynchronous. The other changes are mainly to trap or avoid
possible error conditions.