Not sure if this is a bug, but I have stripped out everything from my main.js file other than the onDidChange() method and am just simply logging the new value to the console.
I have changed the key that gets passed to onDidChange() and the callback still get invoked 7 times.
See the screen capture here.
I created a brand new extension and made a single config item with an onDidChange() on it. The console outputs multiple times as in my original case, however I had two windows open at the time and one outputed 7 times and the other 5. Don’t know what to make of that, but seems it’s not something in my project.