See #13 / #15 for more detail.
PayPal for payment is used in combination with payment commerce for a large drupal commerce webshop.
When the cancel link is used on the paypal website, the order will get the status finished and the client is redirected to the order completed confirmation page.
The client should be redirected to the review page of the current order.
The order has the status payment when the client is forwarded to PayPal.
When returning, the order gets the status finished.
I have done a lot of searching true the code but unfortunately didn't found the issue.
The finish method is called and after that a lot of things happen.
It looks like there is something going wrong in the commerce payment module (I have an almost similar issue with iDeal).