use a Paypal IPN script to set a flag somewhere (in a database probably) to indicate that the person has made a successful payment then combine your success and error pages together and have the page check the flag to determine which version to display.
It does process immediately as long as the payment is from Paypal funds or credit card - when from a bank account the payment isn’t processed for several days so you get one pending result straight away and a second complete result when you actually get the money.
You don’t actually have any payment until the IPN complete is received and so if you want the payment first it needs to work as I said - otherwise just let everyone go to the sucess page and hope that you eventually receive a payment from them.