Stepdown command ensures a majority of caught up nodes. It does so by waiting for the _lastCommittedOpTime to reach the last applied optime. However, during catchup, the primary cannot advance its _lastCommittedOpTime until it commits an operation in its term. Thus stepdown command will fail due to timeout if the _lastCommittedOpTime isn't updated before the election. We could fix this by using the same logic that awaitReplication() uses for determining whether a majority of nodes are at the given time, rather than using _lastCommittedOpTime directly.