You could build this out using Page Types using Kentico 13 .NET Core. You'd have a "form" page type.
Then create a "form group" page type. Then create child page types like Radio button, Checkbox, Textbox, etc. and place those below the form group page type. In your MVC app, you can build that out pretty easy. The navigation through the steps would be dependent on the order of the "form group" page type. Those are essentially the sections of your form and have a button to navigate to the next option.
Now what you need to do is be able to store the data is a custom table or something. This table would need to be as dynamic as your content tree is OR map your content tree somehow to your custom table. This would be the more complicated part but could be done by using global handlers.
It may be overcomplicating things but it allows the overall setup of the form to be dynamic as they want. Someone else may have a better option.