I guess I'm going to seem pretty fickle about the software environment, but it's really born of ignorance rather than wishy-washy-ness.
Earlier, I commented that I would probably use Lua so that I could take advantage of multi-threading to simplify the logic of the control software. I knew that the ESP32 has FreeRTOS inside. After all, that's what at least one of the Lua implementations is built on. What I didn't realize until today was that the ESP32 plugins for the Arduino ecosystem exposes most of the FreeRTOS calls. (It was brought to my attention by this youtube video #168 ESP32 Dual Core on Arduino IDE including Data Passing and Task Synchronization from Andreas Spiess.
Once the idea got into my thick skull, I found there was plenty of tutorial and reference material for making FreeRTOS calls from within an Arduino sketch. The main advantage, of course, is the availability of plenty of Arduino-targeted libraries for devices and sensors. Perhaps the same is true for Espressif's SDK for the ESP32. I'm going to start with the Arduino ecosystem in the interest of getting this project done in less than 12 parsecs.
(Notice above I said Arduino ecosystem instead of Arduino IDE. Since I have been a software developer for a long time, the Arduino IDE drives me a little crazy, though I understand why it is the way it is. Anyhow, I hope to some day spend the time to iron out a smooth path to doing in some other tool what is convenient in Arduino IDE.)