Could it be that if the request is quick enough would the handlers not be attached and therefore not trigger
Nope, you don't have to worry about that. The event is queued up and only fired when control returns to script next time, at which point your handlers will have been assigned.