I don't know what the issues is, but it's "fixed" now, so I'll share my experience. The ESP32 I was having trouble with was an Inland ESP32 I bought from Microcenter. I could never get it to work. I ended up swapping to an Adafruit feather ESP32. I didn't change the code at all, and it works perfect and responds immediately. Don't know if I just had a bad board, or if there is something wrong with the Inland boards with mqtt in general. I only had the one to try. But it works now on the Adafruit board. Maybe this will help someone else if they run into a similar issue with the same hardware.