Thank you both for your responses.
What I was doing was setting up a 48h trial account with a $0 subscription cost. The problem with sending registrants to paypal likely arises because there are other fee-based subscriptions.
It would be handy to implement a quick check in the code to see if there is an actual amount being billed to the client before forwarding to PayPal. I realize this is a rare use case, but it could be a quick fix.
Regarding the aborted subscription, I was logged in as a new user. It would be very useful for OJS to a) automagically email users who have aborted subscriptions (they might not even know that they didn't succeed), and b) make the link to pay for the aborted subscription more clear (e.g. bold red text at the user's home). I still not even certain at this point how a user should go about paying for an aborted subscription. The path I'll take as editor is to manually bill them and then activate the subscription on my own.
To close the loop on my trial account script (there's another thread querying how to do this), I put together a pretty crude hack that I think actually works quite well.
1) I have a trial button on my site that leads to http://commercialbiotechnology.com/trial.php
(this link may be down if I've disabled trials -- that's an easy way to control access to the trials).
2) The trial.php form asks the user for the minimal set of information -- first name, last name, and email (less information = higher conversion rate)
3) The user's info, along with IP address are added to a database. The user is then sent a confirmation request email to ensure that they've got a real email address
4) Once the user confirms, a PHP script uses curl to automagically tap OJS' user registration form and send the appropriate POST variables to autogenerate a password and have OJS notify the user of the account
5) The same script emails the editor informing them that a new user wants a trial subscription.
6) The editor clicks a link, and is taken to a page that has the entire subscription manager create-subscription form pre-filled in hidden input fields (along with a 48h duration subscription, which isn't coded into OJS' form). A submit button then creates the subscription by tapping OJS's native subscription manager script and emails the user that their account has been created.
It's a pretty crude hack, but it creates a very streamlined process for users (crucial if you want to have people actually complete the process), and enables the editor to review all trial subscriptions. Through the use of IP tracking, email confirmation, and editor's manual activation it should be difficult for users or robots to request more than one trial (preventing abuse). Using the native OJS scripts also enhances flexibility -- it's straightforward to amend the process should OJS's processes change.