After 36 years of programming, I believe that SAM/TLA+ is the right programming model, but you still have to choose your wires and your architecture. I would even argue that it is because something like TLA+ was missing that we have seen vortices form (such as OOP, FP, RFP,...).
Think of things like OOP/CORBA. We started with a programming model in the 90s, inspired by Turing Award winner, Barbara Liskov's work on Abstract Data Types. At the time there were no distributed systems, then we said the wiring mechanism is the programming model (Distributed Objects). That was an absolute failure, so the research community went on and built an incredible amount of smart wiring mechanism (no pun intended).
Now it's the other way around, people are saying look at all these beautiful shiny wires, we don't need no programming model. It will end just like OOP/CORBA, it will be a full disaster. There is simply no other way around. You can't manipulate "state" as you please, you can't wire distributed systems with any kind of wire. All these choices need to be done with purpose.