The main issue between CCP and oPRP becomes clearer in ISO22000:2018.
But I know it is more like a boy-scout game...
So, CCP(3.11) has a critical limit (3.12). And the note 1 says that when you are on the wrong side of the limit, the product must be considered as potentially unsafe (sorry, I don't have EN version, so I retranslate from French. exact words in EN version can differ).
Let's find those potentially unsafe products... this is managed in 8.9.4. And there is a small tip in 8.9.4.2, release of products: If the critical limit was not met, you can't release the product, they must be managed following 8.9.4.3. So, let's go there :
Products that can't be released (so this includes all products not meeting critical limits) must be
a) reprocessed, so the hazard is taken below the limit
b) used in another way, if this has no impact on food safety
c) destroyed
So, a critical limit is black or white. For example, when a product is rejected by the metal detector (CCP), you can't sell it. You can destroy it (try to find the metal source before ) or you can "reprocess" it, for example, remove the contaminated slice from the package then push it through the metal detector again.
But, for temperature, this is less clear. If your limit is 4°C, do you throw every product reaching 4.1°C ? No, you will try to find what happened, check the curve and the duration of the problem, then decide if the product is good or not. So, this isn't critical, this is an action criterion and you have an oPRP.