Needs to understand how flexible your solution should be, how often questions can change and how do you want to use answers in future.
As you suggest, it can be just a fields: one question - one field.
+ it is fast to build and no additional costs
- every time when you need to add/edit question - you need to create/edit EE field and edit template
Create a master channel entry where filled in questions inside the Grid fieldtype (it is can be even in same channel which you will use for answers). Then in Channel form you need to create same list using original list as pattern.
example (just base):
{exp:channel:entries entry_id="1" dynamic="off"}
{exp:channel:form channel="users_answers"}
{grid_field}
<input type="hidden" name="grid_field[rows][row_id_{grid_field:count}][col_id_1]" value="{question}">
<textarea name="grid_field[rows][row_id_{grid_field:count}}][col_id_2]"></textarea>
{/grid_field}
{/exp:channel:form}
{/exp:channel:entries}
- Use forms modules like
DevDemon Forms
ProForm Drag and Drop Form Builder
Freeform
But based on your description I think that you don't need to use form builder and stay with solution #2 or even #1 if your question will not change for next 2-3y.