Scheduling a command in the End() method of the current command causes an endless loop calling End() of the same command repeatedly.
How should one command schedule another command following the current command. Note that a command group is not feasible as the first command has to be cancelled (by the driver) in order to stop. That is there is not an automatic IsFinished() on the first command.
The first command constructs the following command in it’s constructor. Then calls mCommand.Schedule() in the End() method of the first command.