I noticed that this event fires 2x for every property that gets updated. So if you have a control that has 10 properties That's 20 event fires for that update. This is detrimental to performance due to all the unnecessary renders. It should only fire once for every getOutputs return.
Or is there an architectural reason for this? I can confirm this behavior in the pcf playground, I haven't checked it in live environment.
This is what I did for my component.
Essentially the equivalent function is used to block any calls if all of the internal copy of the parameters matches the current parameters. There is no need to re-render something that the component already has.
This is a known issue that only occurs in our test harness, and should not reproduce in a live environment. We are tracking the issue with an internal bug.