Thank you, it worked.
I used AudioPlaySdResmp as a drop-in replacement for AudioPlaySdWav and wrapped SD.open(...) and file.read(...) with the mentioned calls.
I'm noticing some distortion on my samples that I have to look into, but otherwise the hang / crash issues I've been having have been fixed.