If all `state0` values were specified by user (the `if None in ..` test fails) then I think that `cstates` should not be used at all.  Basically that's saying "start the propagation from this state, regardless of what's in command states".