When I use context.WithTimeout(ctx, time.Duration) with fsm.Event(ctx, ...) like:
Callbacks{
"enter_end": func(ctx context.Context, e *Event) {
go func() {
<-ctx.Done()
enterEndAsyncWorkDone = true
}()
},
},
the internal block exec immediately, not after timeout.