You can have many custom fields in a custom form, to allow this data to be reported on. This in many cases can be duplicated data, in that it may be added to a task whilst updating. To avoid this duplication of data, have the custom field visible withing the task or in its own field area on the task. Then when you update the task, you add the required data into the custom field, which then when saved would add/update to the custom form with that specific data.
This could then also be linking to validation of a task in that when the task is closed, if the custom field is not filled in then the task is not able to be closed, this may need some other flag as this needs to be optional.
This would reduce duplication of data, would removed the need to be in tasks, then go into project details and custom forms to add the same data.