I’ll add this to the KEP comments / code reviews along with Aldo, but there is a part of me that would consider what you are describing as “Running” as “Progressing” and “Waiting” is “Progressing = false”.
Ideally we have very clear cut rules and descriptions on the common conditions that allow people to write consistent client logic across multiple workloads, but ALSO prevent people from accidentally assuming things that aren’t true (which is a problem we have now, even in Deployments).
Ultimately, conditions are there so clients can write correct code that deals with the vagaries of distributed systems, reconciliation, and eventual consistency around execution. By definition, we’re biting off a hard problem, the KEP definitely has captured lots of that, and we’ll want to give just that extra bit of due diligence to make sure we succeed at that goal. I’d love to see some worked examples of taking existing client code in Kube / in the ecosystem that *should* leverage these conditions, and show how the new conditions make the code correct, and then review those conditions, as well as docs / writeups around that that people can reference. An area where I would like to help out if needed, for sure.