### Elasticsearch Version

8.11+

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

any

### Problem Description

While indexing documents with dynamically added fields, if multiple of those fields are objects are are deeper than 3-5 objects, performance is degraded significantly.

This bug was introduced in: https://github.com/elastic/elasticsearch/pull/90674

### Steps to Reproduce

I built a micro-benchmark to replicate this particular bug. 

But, any dynamic object parsing will cause this.

To mitigate the issue, statically mapped fields for objects is required. 

### Logs (if relevant)

Attached are two JFR files indicating the difference between when the bug was introduce vs. not.
[Archive 2.zip](https://github.com/elastic/elasticsearch/files/13569248/Archive.2.zip)

server/src/main/java/org/elasticsearch/index/mapper/DocumentParserContext.java
/**
     * Find a dynamic mapping template for the given field and its matching type
     *
     * @param fieldName the name of the field
     * @param matchType the expecting matchType of the field
     * @return the matching template; otherwise returns null
     * @throws DocumentParsingException if the given field has a dynamic template name specified, but no template matches that name.
     */
    public final DynamicTemplate findDynamicTemplate(String fieldName, DynamicTemplate.XContentFieldType matchType) {
        final String pathAsString = path().pathAsText(fieldName);
        final String matchTemplateName = sourceToParse().dynamicTemplates().get(pathAsString);
        for (DynamicTemplate template : root().dynamicTemplates()) {
            if (template.match(matchTemplateName, pathAsString, fieldName, matchType)) {
                return template;
            }
        }
        if (matchTemplateName != null) {
            throw new DocumentParsingException(
                parser().getTokenLocation(),
                "Can't find dynamic template for dynamic template name [" + matchTemplateName + "] of field [" + pathAsString + "]"
            );
        }
        return null;
    }
    
    
    private static class CopyToParser extends FilterXContentParserWrapper {
        enum State {
            FIELD,
            VALUE