What I mean is that the FSM execution speed is "controll-able", as you have it. I think it is important - as you have it in your case - that the rising edge and falling edge of the latch_enable signal happen at different events relative to the scan clock rising edge, so that there are no "race conditions".