Here's what I'm planning to do, I'd appreciate any pointers on it. Either way I'm determined to make it work. Just to note I read through all 117 pages of the User Guide.
1) I, as the website administrator, want to create several courses and lessons within those courses.
2) I want to allow a non-administrator to buy access to these courses, for the purpose of teaching them with students.
3) Commerce would be handled outside of Drupal, so I would devise some way to allow access to the course for the teacher.
4) "Teachers" (in my sense of this application) would not be able to modify the course, or the lessons. This would probably be similar to the coach permission.
5) The teachers should be able to assign students to the course, but only students who are linked to that teacher (probably using https://www.drupal.org/project/user_relationships for that)
Most of that I'm quite sure I can handle, but still any advice is helpful.
Here's where it is tricky: say two teachers buy the same course, their students should be separate. Thus one teacher cannot see the results of a student assigned by the other teacher. My first inclination is to make a copy of the course when a teacher buys it and make them the class coach (or make them a teacher but change the permissions for them). The problem with that then is say if I as the admin need to fix a typo or add a lesson to the course, the teachers won't get the updated version unless I do some syncing there.