How would one go about creating a workflow for activities?
Assuming you have server permissions to implement this, I think a binary log is the best approach.  Turn on binary logging at Administer menu > System Settings > Misc by setting "Logging" to "Yes".

At this point, you'll have a complete history of who made what changes in a SQL table calledlog_civicrm_activity.  To add a "visible change log" to the activity is a little trickier - you can probably write a custom report pretty easily, but to add the data directly to the activity page, you'd need to create a small extension that injected the data onto the activity.