There are many ways of achieving the same or similar outcomes when it comes to WordPress. It is difficult to answer Question:3 without a full overview or gaining more detail into your project.
You are correct in your assumptions for question 1 and 2 for the purposes of this context. I'm sure there are many here who could write a book on the matter. But for all intended purposes, your understanding of post and pages is correct.
From what you explained in question 3.
Glossary *CPT = Custom Post Type
You could use CPT for Lessons and Quizes and creating courses as a taxonomy that is simply used to categorise lessons into a course. Lesson & Quizes would have a parent and child relationship so pulling lessons, would pull related quizes
You could even create Course and Lessons and Quizes as CPTs with Parent, Child and Grandchild relationships. So pulling a Course, would pull related Lessons and related Quizes
The possibilities are numerous.
It boils down to personal opinion. Which I believe is not what these forms are used for. (I thought I'd answer anyway to let you know you're doing ok and there really isn't a right or a wrong way) (....this is where I get shot down by the clean code police)
My suggestion is:
Map it out on paper and think about what each section will do and how each section will relate to the other sections.
Once you've chosen your approach start building. If you get stuck come back here with your issues and be specific in what the technical issue is and what you are trying to achieve. (give as much detail as possible, as briefly as possible)
We can help you with technical issues, but we can't choose how you structure your build for you, that's for you to decide.