I would be much more efficient and simpler to use a CountDownLatch for reconciliation. Basically, startup should wait for the reconciliation to complete using `latch.await(MAX_TIME_TO_WAIT_FOR_RECONCILIATION,TimeUnit.MILLIS)`, while `markDeltaReconciliationAsCompleted()` can simply call `latch.countDown()`.