Hmm, well, the good news is I successfully added the subscription manually in ACP, it worked normally. Bad news is, hadn't changed anything in database, so I'm not sure what went wrong. id_member 15914 was already in id_group 9, the subscription group, but the sub was not in smf_log_subscribed. Went to Admin -> Paid Subscriptions, clicked on Contributing Membership sub, did the Add New Subscriber, it was successful first try. The sub now appears in smf_log_subscribed. Only glitch was old_id_group was 9, because member was already in group 9, so when sub expires in a year, it would revert from id_group 9 to id_group 9, member would remain in subscription group indefinitely. Changed old_id_group to 0, so he'll revert to regular member on expiration.
Never seen this before, best guess is IPN was screwed up, and it caused some unusual behavior when it posted to the forum. Would be interested to know if it happens again.