Thanks sending more details and profiles.
'heap_before.pprof' shows 1264MB in use and 'heap_after.pprof' shows 1273MB.
There are no material differences; the 'after' one has more memory used to track series removed after head compaction.
There are about 500,000 series objects in both profiles.
I am confused why nothing shows up as allocated during WAL reading - are you still deleting the WAL?
The memory visible in heap profiles is after garbage-collection, while go_memstats_next_gc_bytes is after heap growth, defaulting to 100% growth i.e. that metric should be twice the amount in the profile.
So either you picked very unlucky times to grab the profiles, or something else is inconsistent.
So, sorry but I cannot tie back what these profiles say to the symptom you described.
Regards,
Bryan