Fixes: rewrote BaseExtendedProcess to handle concurrency a tiny bit better... hopefully

As before, the ongoing process step will be executed no matter whether the process has been paused or aborted in the meantime; however, the events themselves are triggered at the end of the step. Also, the completion overrides pausing/aborting; so if the process was interrupted in the middle of its last step, the completion will still occur.
Also, added parent process sequence reaction to underlying process being paused or aborted. Generally, parent process is supposed to be paused/aborted due to user input, while subprocesses should pause/abort themselves on their own. Otherwise chupacabra will eat you.
Creep: Added Repeated Process class

It's almost like process sequence, except its subprocesses aren't known at creation time, but made on runtime based on process state. Remember to override CreateProcess method and call NextProcess() at the end of constructor. With base constructors always being called at the beginning, one does not simply call NextProcess in base and expect the process to be created properly with half-defined process state.