In AX 2012 Microsoft introduced the new framework (Business Operation Framework service) in order to consume a Batch process especially in Multithread.
But, you can use also the "old" RunBaseBatch class.
About it, take a look to this very interesting POST.
In order to submit a "task" class you can use two methods :
1- "AddRuntimeTask" method.
Adds an instance of a dynamic BatchTask to the BatchHeader. The BatchTask added exists for only the current run. It gets copied into the history tables and deleted at the end of the run. The second parameter, inheritFromTaskId, copies settings such as the batch group and child dependencies from the task specified.
2- "AddTask" method.
Adds an instance of a BatchTask to the BatchHeader. The BatchTask represents a batch-enabled class that will be scheduled for execution as a task by the BatchHeader.
So, you have to use the first one method otherwise if the process is recursive also the previous child completed tasks will be moved in running state together with the new tasks.
Happy new year!!