To put it bluntly, from a commercial perspective people only care if you deliver the project they requested within the time and budget you promised. I have intentionally chose the word "promised" because if you don't do a proper job at communicating things, people that don't understand how the project is built will take things as a promise. And when the project gets delayed, then from their perspective you have broken your promise and they have all the right to get upset.
But when you start a new project you can only give an estimate. A forecast. Since once you start the execution phase of your project, a lot of unexpected things can happen (and they often do), this estimate cannot be a sure thing. Cannot be a promise. You know that, the Project Manager knows that, but like I mentioned above, sales people might not realize that.
I don't quite understand how things unfolded for you. You mention some unexpected issues that caused delays. Then you mention a change request that to me doesn't quite sound like a change request but more like a regrouping plus providing a new forecast on when the project can actually be delivered. Project was in the red, now, after you did these things and agreed on another timeline, the project is in green. And your CEO is unhappy with that. Sounds to me like you have a problem with transparency and communication.
For example, how did the project go from green to red in the first place? A project doesn't get delayed 3 months overnight. If it did, the CEO has all the right to be upset since he or she was hoping to make some money which now aren't flowing in because the project is not done. How did you handle the communication? Were all things visible and clearly communicated during the execution phase? Did people acknowledge things are slowly drifting from the initial plan? Did someone took any corrective actions? Did you agree on new timelines, maybe reduce scope, or maybe add some extra resources to recover and still hit your initial target?
Projects get 3 months late one day at a time. Was this increasing delay visible to everyone from day one, or not?
More than KPIs to track commercial perspective or measure how much money you could have made or what not, you need transparency and good communication. You also need to involve the appropriate stakeholders, sponsors, sales persons, etc, when you notice that things start to drift. That way you can take decisions to correct the path or set other targets that everyone agrees on. Maybe you can launch some of the product, not all of it, something that can make some revenue while you work on the final thing. Or maybe look for other solutions. If everyone is informed and involved, and you have continuous collaboration, then you have options. Then there is no one to be upset at the end, no matter what happens.
So focus on transparency, communication, and collaboration, not on KPIs.
Just my 2 cents.