Currently we only perform checks (in the oplog reclamation thread) as to whether the WT oplog can be truncated when a) we finish sampling the oplog during recovery, b) we resize the oplog, or c) we create a new oplog stone.
In cases where the oplog size exceeds the limit, but the oplog window is smaller than the configured retention period, we may (correctly) choose not to truncate the oplog at a given point in time. However, if enough time passes so that the oplog window grows, but one of the three triggering events described above does not occur, we currently will not truncate the oplog. For instance, during a long period of low write activity, we may not generate a new oplog stone, leaving the oplog untruncated for a long period of time.