There's a little buglet in #85387 (which was the PR that closed #84046), specifically, it doesn't account for the possibility that there's both a default/request **and** and a final pipeline, and that they can both touch the `@timestamp` field.

`IngestService#postIngest` was added in #85387, and it's intended that the logic there only runs **once**, after all the pipelines associated with the request have been executed. But as it's currently written, the logic actually runs after each individual pipeline runs.

The consequence of that is that if there's a default/request and a final pipeline in use for a document, and the final pipeline changes the timestamp field, the `rawTimestamp` recorded for the `IndexRequest` associated with the document will mistakenly use the value it sees after the default/request pipeline runs, and **not** the most correct one (from after when the final pipeline runs).

/cc @martijnvg 
server/src/main/java/org/elasticsearch/ingest/IngestDocument.java
* @throws IllegalArgumentException if the path is null, empty or invalid.
     */
    public void appendFieldValue(String path, Object value) {
        appendFieldValue(path, value, true);
    }
    /**
     * Appends the provided value to the provided path in the document.
     * Any non existing path element will be created.
     * If the path identifies a list, the value will be appended to the existing list.
     * If the path identifies a scalar, the scalar will be converted to a list and
     * the provided value will be added to the newly created list.
     * Supports multiple values too provided in forms of list, in that case all the values will be appended to the
     * existing (or newly created) list.
     * @param path The path within the document in dot-notation
     * @param value The value or values to append to the existing ones
     * @param allowDuplicates When false, any values that already exist in the field will not be added
     * @throws IllegalArgumentException if the path is null, empty or invalid.
     */
    public void appendFieldValue(String path, Object value, boolean allowDuplicates) {
        setFieldValue(path, value, true, allowDuplicates);
    }
    /**
     * Appends the provided value to the provided path in the document.
     * Any non existing path element will be created.
     * If the path identifies a list, the value will be appended to the existing list.
     * If the path identifies a scalar, the scalar will be converted to a list and
     * the provided value will be added to the newly created list.
     * Supports multiple values too provided in forms of list, in that case all the values will be appended to the
     * existing (or newly created) list.
     * @param fieldPathTemplate Resolves to the path with dot-notation within the document