I have an alternative for you if you are open to a non-Microsoft solution, although it is .Net based. I have used a framework called Stateless, a state-machine by Nicholas Blumhardt - creator of Autofac- where you can do the following:
Stateless has been designed with
encapsulation within an ORM-ed domain
model in mind. Some ORMs place
requirements upon where mapped data
may be stored. To this end, the
StateMachine constructor can accept
function arguments that will be used
to read and write the state values:
var stateMachine = new StateMachine<State, Trigger>(
() => myState.Value,
s => myState.Value = s);
With very little effort you can persist your state, then retrieve that state easily later on. Notice that you have NO need to host a separate runtime environment. If you state is represented by an integer, you can fetch that value, instantiate a Stateless object with the current state and you now are ready to update your state machine. The beauty is that you do not need the overhead that normally is required of Workflow Foundation.
I have used this in production for 4 months and it works very well. I think you could adapt this quite easily to ASP.Net MVC.
In respect updating the workflow dynamically, if you configure a state machine such as
var stateMachine = new StateMachine<string, int>();
and maintain a separate file of states and triggers in XML, you can perform a configuration at runtime by looping through the string int value pairs.