[#2770] Correctly implement RecordListener semantics for batch execution