message: Include property about container close state on container logger
diff: @@ -463,7 +463,7 @@ export class Container extends EventEmitterWithErrorHandling<IContainerEvents> i
  private lastVisible: number | undefined;
  private readonly connectionStateHandler: ConnectionStateHandler;
  - private _closed = false;
  + private _closed: "notClosed" | "closing" | "closed" = "notClosed";
  private setAutoReconnectTime = performance.now();
  @@ -523,7 +523,7 @@ export class Container extends EventEmitterWithErrorHandling<IContainerEvents> i
  }
  public get closed(): boolean {
  - return this._closed;
  + return (this._closed !== "notClosed");
  }
  public get id(): string {
  @@ -641,6 +641,7 @@ export class Container extends EventEmitterWithErrorHandling<IContainerEvents> i
  docId: () => this.id,
  containerAttachState: () => this._attachState,
  containerLoaded: () => this.loaded,
  + containerClosed: () => this._closed,
  },
  // we need to be judicious with our logging here to avoid generting too much data
  // all data logged here should be broadly applicable, and not specific to a
  @@ -677,7 +678,6 @@ export class Container extends EventEmitterWithErrorHandling<IContainerEvents> i
  this._deltaManager.logConnectionIssue({
  eventName,
  duration: performance.now() - this.connectionTransitionTimes[ConnectionState.Connecting],
  - loaded: this.loaded,
  });
  },
  },
  @@ -767,10 +767,10 @@ export class Container extends EventEmitterWithErrorHandling<IContainerEvents> i
  }
  public close(error?: ICriticalContainerError) {
  - if (this._closed) {
  + if (this.closed) {
  return;
  }
  - this._closed = true;
  + this._closed = "closing";
  // Ensure that we raise all key events even if one of these throws
  try {
  @@ -796,15 +796,17 @@ export class Container extends EventEmitterWithErrorHandling<IContainerEvents> i
  this.logger.sendTelemetryEvent(
  {
  eventName: "ContainerClose",
  - loaded: this.loaded,
  category: error === undefined ? "generic" : "error",
  },
  error,
  );
  + try {
  this.emit("closed", error);
  -
  this.removeAllListeners();
  + } finally {
  + this._closed = "closed";
  + }
  }
  public closeAndGetPendingLocalState(): string {
  