I noticed recently that there is a ESP32 D1 Mini board with a CH9102X UART, so I bought one to try.
Unfortunately, I couldn't get it to work. Connected via USB, and at a baudrate of 115200bps, I could only successfully upload a program 2/10 times. Other times, I get the "Failed to connect to ESP32: Timed out waiting for packet header".
I could program it without issue by plugging it into the FTDI programmer. It could deal with an upload speed of 912600bps 100% of the time.
I found this webpage that talks about fixing the timeout error by adding a small capacitor between EN and GND, but I don't really have the need to try it because I am going to remove the UART module anyway for the ESPCLOCK4 project.
Anyway, I will just stick with the CP2104 UART for future purchases.
Update: I found that I could make it work by connecting GPIO0 to GND, and setting an upload speed of no greater than 115200. Terrible.