option for state to be redirected without goto
The user should be able to request a new state that redirects the system to a different path, even if the target state on the new path is not a goto.
Currently, if a new request changes the target state, current state execution does not halt unless the new target is a GOTO. In that case an internal "redirect" is issued which terminates the current state (possibly forcibly if the state does not return in a timely manner. However, there are circumstances where the user would like a redirect to occur, but it's not possible to put a goto in the new path.
An example of this is split DRMI/PRMI locking paths in the ISC_LOCK guardian at H1. The primary path should go through DRMI locking, but if that is failing for whatever reason, the operator should be able to request PRMI lock instead. However, if the node is currently in a state waiting for DRMI lock, and therefore not returning true, there is no way to transition to the alternate path. It's also not feasible to add a goto state in the PRMI path (or anywhere in ISC_LOCK for that matter) since that would allow for bypassing critical parts of the acquisition.
A good suggestion from Sheila is to add new decorator or state flag that would allow the state to be redirected without a goto target IF the new target is request.