I agree. Tweaking code is a last resort. It is usually a serious investment of resources. It can become a pain in an upgrade. Switching between Lesson and Quiz may not bring you to a better place. You may gain a function you like but lose three you also like.
Just thought I would mention some potentials. Sounds like you have a handle on your needs and desires.
Chris