I would like to preface my suggestions by stating the support staff is superb, and their effort and assistance kept me working to find a solution to my setup issues.
My first suggestion would be to have the App and online dashboard display the controller device firmware and OS version at the very least for troubleshooting purposes. Having a way to pull & submit device log information directly to Rachio support through the App would also be a nice feature.
Secondly I would suggest that the setup process not be an all or nothing process: the first part to sync the App to controller device should be independent of the second part which is the online connection and activation of the controller device.
My setup process was insanely difficult and gruelling simply because the Gen2 device I purchased was older and had an outdated firmware; the one with issues connecting to a dual band router, which I have. With both of my suggestions implemented it would have nearly eliminated all the hours of effort over the course of almost a week that was invested by both myself and the support staff getting my controller device connected and setup.
An alternative option to my second suggestion would be to include an ethernet port for the initial device discovery, App sync, and online activation. To prevent unwanted tampering this could be accomidated via a removable accessory or include functionality within the App to disable a fixed port.
Thanks again Rachio support for ALL of your help getting me setup!
*** For those interested I was finally able to complete the setup process and receive all firmware updates by connecting to the controller device via an old wifi only Zoom tablet and using the hotspot function on my phone to create a network for them to connect to. Once connected I let things sit for about 4 hours then shut it all down, performed a network reset on the controller before performing the setup process again.