I ran into a PayPal setup issue that ate up a few hours unnecessarily; I think the documentation could have cleared this up w a few sentences in the troubleshooting section.
Transitions between PayPlans->PayPal->PayPlans was working and I was getting cofirmations everywhere, but the subscription was never changing to from 'none'. The Invoice remains in the 'Payment Pending' state, with pending_reason=unilateral.
I discovered that when using the sandbox, the email address shouldn't be an the developer email address associated with the account, but rather an email address listed within the sandbox account's credentials. This can be found in the sandbox under My Apps (choose one) -> Sandbox API credentials. In my case it was something like sb-j13njXXXXXXXXX@business.example.com.
Additionally, this is where the IPN also gets set, although it is now called a return url instead.