Is there a way to log changes to module settings for better long-term administration and debugging?
Here is our workflow.

First of all you code base should use a versioning system as Git or Subversion, doesn't matter which you like or want use, but the main point its to use a versioning system.

Then you should give a look to Features module and all his modules relatives. This will allow you to create a set of module that include standard configuration and etc.

So, mostly popular modules are using either variables or ctools to manage their configuration, for those who sue CTools, Featues will help you export their configuration, for the others you've Strongarm.

I think just with this, you will covers at least 80% of your configuration, for the rest your should either move it to features or use hook_update_N with a module.

Here what is important its that all your configuration must be inside files and committed to the versioning system.

Like that, you will which configuration has been changed and see the historic through the versioning system.

I think the most important part its to move the already existing into Features and force people to use Features when they are doing changes in the configuration.