Just an idea. Is it possible that the Dataform plugin writes a result into a hidden user profile field after the user has successfully finished the Dataform activity? If yes, this would help with conditional access to courses by using the enrolment plugin 'Enrol by user profile fields.'
With kind regards,
Hartmut