Please note that if you are creating a custom workflow, please also refer to the default wcm submit process. It serves as a model for any of your custom workflows, specifically by creating special review sandbox to isolate submitted changes sets for preview by reviewers and then by destroy upon commit to staging (and also releasing locks and taking a snapshot of staging).
So, once again, please review. In TeamSite, each task had an explicit notion of taking and releasing locks, and you had a submit task pre-built for the commit action. You did not though have the option of isolating change sets in special review contexts - everything was just referenced from the submitting workflow.
In Alfresco, our default submit process uses a custom action you should re-use to create and destroy those special review contexts. It also explicit handles locking and submit, though as custom actions associated with the end-process task and not part of a pre-built task itself.
You'll find it similar in power (well, hopefully more powerful) but a slightly different model … do review first.
Kevin