I need something similar. The logic I have in mind is basically add conditions to conditional activities. The condition would be called "enrollment plugin", with a drop down select list of all the available enrollment methods for a course.
The 'Free" activites / lessons or sections could be set to allow to those who have enrollment via plugin - manual / autoenrol
The Paid activities would be accessible by only those who have been enrolled via plugin 'paypal'
Other option would be to clone the student role, and call it "customer". Make paypal plugin add the user as 'customer" and add condition in activity for Drop down selector for Roles. ... catch my drift?