Conceptual help needed for creating forms related to parent node
I would solve this a bit differently:


Programmatically create and validate the form "attendance" - sounds good.
I would create a separate database table and store the filled form data there. It should have node (and user) id fields to determine to which node (user) it is related to. The node id field or node and user id field combination should be unique so you can always get the right attendance data for the specific node/user. Optionally it could have a unique, auto-incremental attendance id as the primary key if more than one field would be needed otherwise (easier to create unique paths for every attendance). Then I'd also add either separate fields for every form field or one field for all the data (serialized) depending of the needs.
Add a link instead to a programmatically created path (example: attendance/1/pdf where 1 would be the unique id for the attendance). When the user goes to the page create the pdf from the attendance data that they can download/view.
Add a link to the attendance edit form page (example path: attendance/1/edit).


One more thing to note is to get the (view/edit) permissions right if there is a need for restrictions.

In case my solution idea doesn't fit too well with all the specific requirements I would just say that you should store data in the database not files.