Current implementation if afterClusterTime waits makes noop write immediately after detecting that the requested time is > then available time in an oplog. Instead the wait should be adjustable to avoid unnecessary writes.
Adding a WaitForSecondaryBeforNoopWriteMS parameter and waiting its value will solve it.