1 - Add-in is my preferred way because it gives you full control on what event should trigger the code, and what it should do.
2 - Workflow transitions - if you have PDM Pro, you can use automatic transitions to loop on check ins. It actually works pretty good, but it will create an extra version of files. Here, files in WIP will get automatically updated with whatever is going on in the Auto transitions:
Now, i dont know if this is intentional, but as long as it stops after one run-through, you're fine.
3 - Dispatch - works for the most part. There is a known bug when updating custom properties on check in and out, that it will attempt to set values on files that are saved internally, and report errors. I haven't tested this as much, but i don't think it will create an extra version as it's tasks, presumably, will be executed on the same events as an add-in.
Thank you for throughout answer.
Add-In - not jet there to write that my own but hope is that one day I will be there
Automatic workflow - yes, good idea, did not come up with that myself.
Dispatch - yes seems most promising if bugs will not kill the idea...