PayPal Express Checkout can suffer from the same problems as GlobalCollect/Ingenico hosted transactions - if the donor fills out all their information on the payment processor site but somehow doesn't make it back to us with their PHP session intact, we don't do the necessary post-processing to push their donation through.
We should have a generic script to rectify orphans found in the pending database, starting with those for PayPal Express.
It should eventually be adaptable to rectify orphans from Ingenico Connect hosted checkout transactions.