The other thing that often occurs across major versions is that the 'internals' of the app are re-written, updated, etc. Apple releases new frameworks every year that provide more feature, capabilitiy, performance, reliability (lol! well, maybe...) and Peter will be evaluating which of these he updates from ST3 to ST4. And it's not like upgrading the RAM or GPU on your PC where you just take the old one out and slot the new one in. You usually also need to update the code in your app that interfaces with these frameworks.
Then you have to test everything, because there's never only 1 way to do anything, and what Apple document may not necessary work, or work as expected.
Yes, it's a lot of 'under the hood' stuff that we don't actually see most of in the final shiny product, but it is necessary. To not do it, means keeping older and older code. Even if it worked reliably now, that doesn't mean it will work as expected with the next iOS/MacOS update. So by updating the code, Peter is also trying to futureproof as much of the app as possible, for as long as possible.
Developers also need to make hard calls on when to stop adding new features to a current, stable version of a product. Especially when they are already working on the next version. Every time Peter has to go back and change ANY code in ST3, there is a risk of introducing new issues (regressions). To add a new feature compounds that risk significantly. It may not even be possible without making significant changes to other parts of the code base which again compounds the risk. So as frustrating as it can be to us users, the absolute right thing to do is to stop adding any new functionality to ST3, and only fix major bugs. Also, all that time could be spent on working on ST4, where that same feature we want has been factored in from the start and will likely take less time and effort to implement. So, where do we want Peter spending his finite time? I think most of us would be saying on ST4.
Being a developer can be thankless. Everything takes too long according to your customers and management. Vendors don't document stuff properly. Stuff doesn't work as expected, or sometimes even as documented.