Leave WindowsEvent in a consistent (unsubscribed) state if Subscribe() errors.
Leave WindowsEvent in a consistent (unsubscribed) state if Subscribe() errors.

Before this change, the following sequence of invocations was possible:
 * e.Subscribe(...) => returns some error, but leaves 'e.config' set
 * e.Subscribe(...) => now returns an error immediately because 'e.config' is set.

It would be better if e.Subscribe() freed up any half-created state on
error, and leave the receiver "e" in a consistent unsubscribed state.

PiperOrigin-RevId: 401180517

google/winops,google/winops