Finished exitCurrentState() changes to handle SubmachineState-related
use cases that hadn't yet been considered.