This is a design flaw that always existed in the system but was not uncovered until some recent past. The issue is that compiler identifies which metadata fields are asked to be included based on the query (like using GetMetadataPropertyValue) and passes this information to the input, where then the metadata fields are extracted and added to the payload.
On one hand it avoids polluting payload with all the metadata available, but on the other hand it creates a problem when system metadata field name clash with already present payload field name. In which case metadata value being injected in the payload overrides the original value.
It was initially observed with "PayloadId" and then also with "EventId", and generally when chaining multiple ASA jobs via EH.
The only way to avoid this at present time is to rename original payload field before it gets to the ASA input.