This implementation of FlowExecution is serializable so it can be safely
stored in an HTTP session or other persistent store such as a file, database,
or client-side form field.
Note: this implementation synchronizes the signalEvent Flow execution entry
point. It is locked on a per client basis for this flow execution.
Synchronization prevents a client from being able to signal other events
before previously signaled ones have processed in-full, preventing possible