Hi,
if it doesn't always register, that's odd and it's likely due to a race condition, you can't rely on order of execution between fsms, so you have to put some "next frame event" temporisation, it helps. when an Fsm knows it expects some work to be done at the very same time and it depends on the outcome, then a next frame event will help making sure of the sequence.
as for send event, in order for you to know you need to send this event, you need to reach a logical point in your logic+data, why not then transition to another state, send that event, reset some values or flag and come back to the state?
What is it that you do in this state where you need to send a event at some point and not as the state starts?
you can most likely use some logical action that runs everyframe and can send an event right?
you can also use SetEventTarget to define where event will be sent, and I think it might be the key for you.
Bye,
Jean