BPM User
The way I usually tackle state changes for a form across multiple user steps is by having a hidden text field on my form called txtStep. In my process, I then stuff this field with an appropriate value using a SetValue operation. In the form, I have code that is called on the form's initialize event that checks to see what value is in that text field. Depending on what the value is in that field, I change the form appropriately.
For example, just prior to your second user step you could use a SetValue to set the value of this text field to the string "user2". In your form's initialize event (pick any one - such as a page's initialize event), check to see what the value is. If the value is "user2" then you know to lock down the form but have the "Edit" button displayed to the user.
Feel free to email me if you have any questions.
Josh Boyle
Cardinal Solutions Group
jboyle@cardinalsolutoins.com