There is a lot to what you are asking and I will not even attempt to provide a comprehensive answer. I do think that a lot of folks get to that upgrade point. Here are some thoughts that I have concerning some of the aspects of the issues that you bring up.
The
Nano (original) is really one heck of a nice board. Basically an UNO in a smaller footprint. Clearly it has limitations but I have always felt that they can do a great deal.
For upgrading, when you need more speed and memory, I would suggest a
Teensy LC.
Compare the specs with Nano and the Teensy LC comes up on top in almost every category - and it is relatively low-priced. still some specs could be important to you - the Nano IO pins source/sink 40 mA - on the LC you don't see that but some pins will do 20 mA. Depends whether you need that particular characteristic.
Code-wise, I think you have an excellent chance of transporting the code with a minimum of issues.
Considering the WiFi / BT issues....
I have experience with the MKR WiFi 1010 and the NANO 33 IOT (there are a bunch of 'new' nanos). The 33 IOT (the low priced one) is basically a stripped down 1010. Ceramic resonator and no crystal, that kind of thing. They are both pretty powerful. Both have the u-blox NINA-W102 ESP32 chip. Both are 3.3V devices.
Compare them to the ESP32 boards and there are a lot of them and they are cheaper -
example. Also 3.3V
are they as reliable as the Arduino
As reliable as the Arduino what??
I think that enough time has passed where they are reliable but there are peculiarities and finicky aspects - most of which has been known enough to be written about.
As long as you can transport to 3.3 from 5v easily enough, both should be considered. So, comparing in a general sense the two categories (Arduino ublox) vs generic ESP32 boards, you are going to need to consider the software to use WiFi and BL. Each uses different libraries and, unless you want to write your own, that is what you will need to deal with.
I should add that both classes of boards use the Arduino IDE, but you could use the Espressif SDK.
For Wifi, I think both libraries will get you where you want to go in a fairly straightforward manner - as long as you want to do what I would call "regular" stuff (which is all I have done with either).
If you have never programmed BT on anything, it is not simple at first - I'm not talking about SPP stuff [or AT commands} but "real" BT peripheral and central role devices.
Having used both the NANO and ESP32 for BT, within my experience, I would say that the BLE library for the NANO is actually easier to use. The ESP32 BT is probably more powerful. That is more of an intuition on my part, than factual comparison.
Here is an example. I used a DOIT ESP32 Devkit board to read BLE beacons. I had to wade through the library source code (Most of it is, as I recall, Neal Kolbans work - at least the foundations). I also did some similar things with a
**broken link removed** and also had to wade through the source code to figure things out.
The ESP BLE has active github environment and you start following the issues and fixes and so on and so forth.
The MKR WiFi 1010 (or NANO) BLE libraries do not support beacons at this point (at least as far as I can tell). They also have a github development environment and it is quite good (I have corresponded with the 'head' author who is a very sharp guy). They are after a much sleeker design and they have had a few versions and I think it is a good library. No beacon capability as far as I can tell.
So, if I wanted to program a BLE peripheral device that would monitor some straightforward machine characteristics and I wanted to access an app on my phone to get the status of the machine, all three would do the job.
Same as an analogous situation with WiFi monitoring.
One plus with the ESP32 variants is that there has now been a great deal written about them and so lots of examples. A smaller disadvantage is that there are so many different boards - so a few [peculiarities]
That's my casual 2 cents - hope it helps.