Hide form behind PayPal payment
What I ended up doing was creating a separate page with a generated PayPal button. You can include a hidden field called 'custom' that you can use to pass in your own data so I included the current user's UID. After a successful payment you can get PayPal to send a POST with the details to a URL of your choosing. I set up a custom page with a listener then updated the user account specified by the UID.