Hi Chris,
I have a questionnaire module available in 2.4 version of the modeler. It will cover your requirements.
You can contact me for more information.
If you use one form per questions i think its achieved quite easily, by using microflows to open a form for a specific question type. Object generalization comes in handy here.