private void doSaveState() {
		if (restoreUpdateManager.isBusy()) {

			// do not save while there is a pending restore operation, as we want to save the
			// state of the table after being restored, which will be the most current state
			saveUpdateManager.updateLater();
			return;
		}

		if (isTableModelDisposed()) {
			// This can happen if a client manually disposes its model directly instead of calling
			// GTable.dispose().  In that case, there is nothing to save.
			return;
		}

		doSaveState(saveToXML());
	}
Longer than the restore delay so that saving does not affect the pending restore
Ghidra/Framework/Docking/src/main/java/docking/widgets/table/TableColumnModelState.java