### Description

This is a followup to #85926.

As part of the ingest processing pipeline, we call `CollectionUtils.ensureNoSelfReferences(...)` to ensure that a script processor didn't accidentally introduce a circular object. However, this check is only necessary if we know there was the potential for a circular option, which can only happen with either a custom processor (a plugin where we have no control), or a script processor. We should be able to only call this sanity check if we know we need it, rather than for every document.
server/src/main/java/org/elasticsearch/ingest/IngestService.java
itemDroppedHandler.accept(slot);
                handler.accept(null);
            } else {
                Map<IngestDocument.Metadata, Object> metadataMap = ingestDocument.extractMetadata();
                String newIndex = (String) metadataMap.get(IngestDocument.Metadata.INDEX);
                
                
                indexRequest.index(newIndex);
                indexRequest.id((String) metadataMap.get(IngestDocument.Metadata.ID));
                indexRequest.routing((String) metadataMap.get(IngestDocument.Metadata.ROUTING));
                indexRequest.version(((Number) metadataMap.get(IngestDocument.Metadata.VERSION)).longValue());
                if (metadataMap.get(IngestDocument.Metadata.VERSION_TYPE) != null) {
                    indexRequest.versionType(VersionType.fromString((String) metadataMap.get(IngestDocument.Metadata.VERSION_TYPE)));
                }
                if (metadataMap.get(IngestDocument.Metadata.IF_SEQ_NO) != null) {
                    indexRequest.setIfSeqNo(((Number) metadataMap.get(IngestDocument.Metadata.IF_SEQ_NO)).longValue());
                }
                if (metadataMap.get(IngestDocument.Metadata.IF_PRIMARY_TERM) != null) {
                    indexRequest.setIfPrimaryTerm(((Number) metadataMap.get(IngestDocument.Metadata.IF_PRIMARY_TERM)).longValue());
                }
                try {
                    indexRequest.source(ingestDocument.getSourceAndMetadata(), indexRequest.getContentType());
                } catch (IllegalArgumentException ex) {
                    
                    
                    
                    
                    totalMetrics.ingestFailed();
                    handler.accept(
                        new IllegalArgumentException(