We could expand the API to allow DAGs of activities instead of only a linear set. Maybe that could be achieved by using an Activity which can itself contain a sub-saga. In that implementation it might be better to pass fully constructed IActivity objects to the saga so that the deserialization can handle correctly configuring the grain references to the sub sagas. That would also remove the need for Activator.CreateInstance and the generic IActivity variant of the interface.
Quoting @ReubenBond: