I am now at same stage as Jedman with esp32 wroom and INMP441, I can see the audio with DumpDisplay arduino test app using exact same pins but I get no sound in assist_pipeline but if I leave mic DO line unconnected I get garbage in assist_pipeline. I cannot think how this is possible.
It looks a bit like there might be some difference in the i2s setup.
My solution to this conundrum right now is to try build another unit with esp32-s3 and MP34DT01 and try that. If that does not work, I swap INMP441 to esp32-s3 and MP34DT01 to esp32. Hopefully I get one unit that just works™
Regarding high pitch sounds during playback clicks are typically caused by signal integrity issues since these are relatively high speed signals. Especially if the distortion stops if you touch the high speed lines with your hand, move things. You should be able to so solve such issues by using better quality dupont lines with higher load spring mechanisms, soldering the dupont lines without the plastic cases, twisting the high speed lines together with gnd or even adding some grounded tinfoil around the signal wires. Another thing I noticed the INMP441 can pick up alot of noise if the PCB touches a surface that is vibrating. A good solution probably is to use some polyester fiber like in pillows to make sure the MEMS microphone does touch any hard surfaces in casing that you have.
Longer pauses like over 300ms are most likely caused by buffering issues, which is another story altogether.