I've recently bit the bullet started porting my CPP Arduino code to C to run on ESP32's and take advantage of some of the more advanced features, watchdogs and freeRTOS tasks.
I would much prefer to write the code in Rust but I'm sure even if it were possible and I got it all working eventually some other chip will be the new hotness and using C ensures I need to do the least amount of work to get it working on that chip