I want my users to be able to subscribe to a recurring payment (using the express checkout api) The first payment needs to be billed immediately that the user subscribes, and I
I would stick to your first option of using INITAMT to process the first payment, but set FAILEDINITAMTACTION to CancelOnFailure.
This way, if the initial payment is not successful, the profile will immediatly be set to Suspended status instead of Active.
Then, within your login system or whatever you're using to protect your subscriber content, you can use GetRecurringPaymentsProfileDetails to obtain the current status of the subscription profile. If it's anything other than "Active" you can give the user a message accordingly and deny them access to the content.