Just browsing through, and a note from the Moodle 3.7 New Features page jumped into my mind. There is a new capability added in 3.7 called "moodle/category:viewcourselist". It seems like it is intended to allow for more control over who can view what courses. I have not experimented with it myself, and it looks like it might take some fiddling to get it just right, but perhaps you'll find it useful.
https://docs.moodle.org/37/en/Capabilities/moodle/category:viewcourselist
https://docs.moodle.org/37/en/Course_list_viewer_role
https://docs.moodle.org/37/en/Capabilities/moodle/category:viewcourselist
https://docs.moodle.org/37/en/Course_list_viewer_role