That's a difficult question to answer as the route I've gone down has been more by luck than judgement.
I also know there are other people on the forum that have gone down a different path and naturally consider their path the best. Please note - I don't want to get into a 'my mouse trap is better than yours war'.
I started-off many years ago using Wemos D1 Mini microcontrollers flashed with ESPeasy. There is a rules-engine inside ESPeasy which opens up doing some "clever" stuff inside the microcontroller. You can also do OTA updates to the firmware.
I know other people, like @TotallyInformation, have produced home automation systems with ESPhome.
I started helping my grandsons 2+ years ago when they were studying for their GCSEs in Computer Science and sort of naturally fell in to using Micro-Python as the pseudo-code for their answers on their course work. I bought a Micro-Python coding book as a Christmas present for one of the boys and in it, it mentioned flashing Micro-Python on to an ESP8266 devices like the Wemos D1 Mini.
A year ago I stumbled across the ESP32-S2-Mini, same outer footprint as the Wemos D1 but loads more flash memory and PSRAM. Also cheaper than the Wemos, so must be a good choice. It is very easy to flash Micro-Python onto it and using Thonny (as an IDE) makes a nice combination. The other thing I like about this combo is you import just the libraries you neeed, rather than having to pick a piece of firmware that includes lots of peripherals you don't need. Hope that makes sense.
All the projects I've tacked with @zenofmud over the last year have been based on using Micro-Python and Thonny and for myself - all with ESP32-S2-Minis. In fact I have revamped some of my old projects that used Wemos D1 Minis to now use ESP32-S2-Minis (so I have spare Wemos D1s if anyone wants them?).
My grandsons, who have just started their Computer Science A-Level, have shot up the Micro-Python learning curve and have had great fun using the ESP32-S2-Mini to try out their ideas.
This week, prompted by a friend of mine who has some RPi-Pico-Ws, I adapted one of my Micro-Python scripts to handle a RPi-Pico-W as well as ESP32-S2. The script reads an external 'config' file that defines the 'device_type' and then allocates the pin-mapping accordingly (so the script is generic as possible).
I've also experimented developing a method of performing OTA updates for a Micro-Python script - very much a 'work in progress' at the moment.
Although I have various Arduino devices I haven't done much with them recently - lack of bandwidth.
I also have a number of S20 and S26 mains switches around the house (controlling external lights) which are flashed with Tasmota. Also a couple of PZEM-003T energy sensors, again flashed with Tasmota.
In summary and based purely on my own personal experience...
I like the ESP32-S2-Mini, Micro-Python and Thonny-IDE combination as it gives me pretty good productivity and creativity for very little outlay.
One thing that happened just before Christmas was I picked up one of my old Wemos D1 Minis and couldn't "talk to it" as I'd changed my WiFi passwords on my home network and couldn't remember what I'd use at the time I flashed the device. With devices flashed with Micro-Python you just plug them in to a USB port and "look inside" the device - SIMPLE.