If the only alternative is to allow the DJ software to write its tags, till they allow the option
not to write to files. You might consider this.
Make a note of all the fields that the DJ software updates, especially basic ones that MC will also write to. These i would say are the problem tags that will cause MC to think stuff has changed w.o it's permission
Now in MC you will need to create custom fields that serve as a backup of these fields against any future updates. For example Artist (B), Album (B), Track # (B) and so on...
The idea here is once you have done initial tagging of basic fields in MC they wont really change all that much in the future.
Now play with the DJ software. It will go on its merry way updating fields as it sees fit.
After this in MC, do a update library from tags on the test sample that the DJ software interacted with. If you notice any changes, all you need to do to recover them is a Move/Copy of the backup fields back to the original one.
What would be really cool at this stage is if there was an expression that could test if there were any differences between the basic fields and their backup copies, and show you only the ones that have been changed.
Not really the best solution but hopefully one that allows more freeedom when working between both programs. You will still have to deal with the MC specific & DJ specific tags in each file tho.