Currently the session is saved, after each migration task, in case of success.
Based on the following remark the way to handle session.save() should be first discussed and probably review.
"Well any kind of save within task is violation of contract for task since it can't be rolled back and reexecuted by install manager so it needs to be documented in the task. Plus sessions are saved by install manager after execution of all tasks for given module successfully. From what yo usay above i still don't see reason to force the save per task."
Just on additional remark.
The tasks support to be reexecuted even if the migration already took place.