We moved from our supplier developed, but no longer supported "database extended enrolment" plugin to the standard "database enrolment" one in summer. The previous one gave us the opportunity to map other fields (though not, I think, the new custom fields). But the database enrolment plugin, like you, did not give as fine control as we needed (different categories and many other things).
Anyway, I know use the database enrolment plugin for enrolments only and send a csv to "upload courses" which allows for a richer set of information about courses being created. I'm hoping to be able to automate the upload courses process with a scheduled task, but it works well enough.