Pretty good read all in all, had been going through something very similar at our org when we were migrating our codebases.
“Even when you define and unanimously agree on x being a P0, P0 can’t be done without y which is a P2 task but how can you do a P2 task before P0, given the defined priority?” - have spent many hours untangling these webs, would love to hear more about frameworks or practices folks here have established to avoid this.