Have set up the ESP32 / Arduino and followed this tutorial for simple Wifi Uploading and it worked fine, so incorporated it into our main program code and again seems to work well.
A note in that tutorial suggests having any Delay() in the code might cause a problem, though we do have a 1 second delay in our loop, it did not affect the wifi upload, even tried increasing it to 5 seconds, the Sending Invatation / Uploader seemed happy to wait for a response.
The only downside so far is that the Arduino Wifi code takes up 37% of memory.
https://lastminuteengineers.com/esp32-ota-updates-arduino-ide/
Edit - while testing had been monitoring the power usage with a cheapy inline USB power meter, and seems it takes up to 200ma when programming.
When our program, with OTA implemented, you could see the current increased to about 100ma for a second each time the loop came to the ArduinoOTA.handle() , about every 4seconds in our code.
That was not such a problem, but when we turned off the routers wifi, the current jumps up to 140ma and stays there , though the main code is still being executed ok, but could notice the heat spreader getting warmer.
Expected that when the router was turned back on it would reconnect, but not so - a reboot or some extra code is needed.
As can be seen in this post its an ongoing problem -
https://github.com/espressif/arduino-esp32/issues/653
However if the router is off or the signal lost for a while, even using the code they suggest, means a real problem for the running of the main program code.
Seems the advantage of a wifi code uploader is completely outweighed by the potential high power useage and rebooting a loss of wifi signal presents - unless there is a better way ??