message: Handle noop coalescing for counting if client should join write
diff: @@ -203,6 +203,8 @@ export class DeltaManager
  private connection: IDocumentDeltaConnection | undefined;
  private clientSequenceNumber = 0;
  private clientSequenceNumberObserved = 0;
  + // Counts the number of noops sent by the client which may not be acked.
  + private trailingNoopCount = 0;
  private closed = false;
  private storageService: RetriableDocumentStorageService | undefined;
  private readonly deltaStreamDelayId = uuid();
  @@ -357,7 +359,8 @@ export class DeltaManager
  }
  public shouldJoinWrite(): boolean {
  - return this.clientSequenceNumber !== this.clientSequenceNumberObserved;
  + // We don't have to wait for ack for topmost NoOps. So subtract those.
  + return this.clientSequenceNumberObserved < (this.clientSequenceNumber - this.trailingNoopCount);
  }
  public async connectToStorage(): Promise<IDocumentStorageService> {
  @@ -772,6 +775,12 @@ export class DeltaManager
  type,
  };
  + if (type === MessageType.NoOp) {
  + this.trailingNoopCount++;
  + } else {
  + this.trailingNoopCount = 0;
  + }
  +
  this.emit("submitOp", message);
  if (!batch) {
  