I am working on rendering a dynamic form in an ASP.NET MVC view that will meet these requirements:
I wrote a class library that basically does exactly what my psuedocode in my question describes. It works great.
I finally got around to cleaning up my class library. I have added some new features and created a fairly well documented demo web application.
All of this is hosted here on CodePlex. I hope this helps someone.