Buenas Juan!
No tengo experiencia con ESP32 pero hice una prueba de concepto similar con STM32 usando ThreadX y el stack USBX. Ese stack implementa audio host hasta UAC 2.0, que era mi interes por tener menor latencia que UAC 1.0 (0.125 ms versus 1 ms). Mi idea era usar interfaces de audio profesionales y fue un fracaso pues USBX no tiene muy desarrollado UAC 2.0, por ejemplo le faltaba en su momento feedback asincrónico y otras yerbas que toco de oído. Los headset que probé funcionaron sin problemas. Mi conclusión fue pasarme a linux embebido: ALSA resulta la mejor opción para compatibilidad con más dispositivos de audio usb.
Mi opinión sería usar headsets de audio con conectores mini trrs (speakers L + R y mic), que tu dispositivo tenga los ADC y DAC para recibir y generar señal de audio analógica y usar el ESP32 con I2S. Son baratos y tu programa puede ser más sencillo, un stack USB agrega bastante complejidad.
Si igual necesitas o querés explorar la opción USB Host, sumo que UAC 2.0 ademas de tener menor latencia (que depende tu aplicación puede ser despreciable), también sopprta más cantidad de canales (que también te podría resultar irrelevante x lo que comentas) y necesita una interfaz High Speed, lo cual no estoy seguro que el ESP32 traiga. Yo en el board nucleo tuve que agregarle una por ULPI y me hizo putear un poco.
No exploré la grabación. Qué necesitas ahí? depende los buffer que precises y la calidad de grabación habría que ver si estás bien de memoria RAM, otro punto para analizar si usas un stack USB o conviene algo más sencillo como el I2S. Habría que ver cuánto demanda cada opción.
Suerte con el proyecto!
Bomba