Nice one John, that looks like a solid solution.
You can go full QGIS project side solution using default values in the attribute form, provided you have the fields in the dataset ready to go.
For example getting the date created, you could use the "now()" date function to auto-populate the date into a "create_on" field.
For user you can use the "user_full_name" variable.
Then to capture the last updated, you'd do the same process but check the "Apply default value on update" to recapture the info when the record is edited.