> I am currently using Gravity Forms and their User Registration add on for new users to create an account.
You could have them register for free with that, and then once logged in, show them a PayPal button to upgrade their account. WP Admin -> s2Member -> PayPal Buttons
If you want the payment to happen before signup, then you'll need to use the deafult wp-login.php registration, otherwise the account won't get the paid access he just paid for (Gravity Forms doesn't pick this up).
> Ideally the user will fill out a form with his/her details and upon submission get taken to the Paypal checkout page.
An s2Member pro-form using Express Checkout would do that.