POTENTIAL SOLUTION
TL;DR: Speaker grill is a bit loose on my unit and had some lint on it. Cleaning it with a toothbrush and isopropanol, then blowing into the speaker port while playing the Unfold ringtone until everything was dry fixed my issue almost 100%.
After being annoyed by this issue for a month or so I finally went to the apple store for a repair. (un)luckily there was another issue which was a flicker in the ultrawide camera when recording in bright environments. Anyway, after the repair I walked out expecting everything to be fixed and tried the speaker on my walk back to work by playing the song Cornfield Chase at around 40 seconds which I'd been using to demonstrate the issue to the "geniuses". Low and behold the issue persisted and there was absolutely no change to before the repair. (yet to confirm if the camera issue is fixed too as it happens in specific circumstances). Now i thought, hmm maybe its a software thing and maybe doing a DFU reflash would work. Before i tried this though, I decided to have a close look at the speaker port through a loupe and saw there was an every so small amount of lint and such gubbins on the grill. So I got the isopropanol out and a toothbrush and gently gave it clean. A bit of brushing and blowing into the speaker grill to dry it out, as well as playing the Unfold ringtone while blowing dried it out pretty well i think and amazingly, this seemed to work. NO MORE CRACKLING! however....
While inspecting the grill, poking it very gently with some tweezers, I noticed that the grill itself moves compared to the phone's frame, where it doesn't on the microphone's grill. IS THIS THE DESIGN FLAW causing this to be such a widespread issue or is this just my unit? If the grill is not staying stuck to the frame, it will start flapping in the speaker's breeze and resonate at certain frequencies. This would explain why when the grill was partially blocked by the lint and debris it was being affected by the speaker more and buzzing/crackling more.
Now the bad news: This didn't 100% fix the issue, but it did fix it enough to not be noticeable until the volume is 100%, where before the issue was heard from about 50% volume, maybe less sometimes.
I'm not necessarily advising anyone else blow IPA into their speaker port, but this is what worked for me.