You can capture the query parameters through hidden fields in the form.
For the referrer URL, if you want to store it in a field, you will need to augment your form behavior with some JS.
You are correct. The raw Activity Log Details contain more point-in-time information (though it is aged out after 90 days) than you can report on through the UI. You can only get at this info if you download the Activity Log via API; there's no canned report that centers this info.
Appending the data, using Change Data Value, to a rolling history field (Textarea field) is what most of us do to have a persistent audit trail on the lead. Not pretty but it fills some gaps.