I had to replace a few rubber strips on my PSR-520 because of the same problem you describe. I still have the PSR-520; my kids use it now.

When you press a key, it is actually two switches that make contact at different points as the key moves downward, and the keyboard measures the time difference between those switch closures. That time difference provides the key velocity (volume) - shorter time means higher key velocity, as v = d/t. Apparently, if the first switch never closes because of dust contamination or wear, the note will sound at maximum velocity (volume) when the second switch closes.
The switches are formed by carbon pads on a flexible rubber strip touching exposed traces on a circuit board.
In my situation, I found a for-parts-only PSR-520 and pulled a bunch of stuff out of it, including those strips. I didn't analyze my S950's keybed too carefully when I had it open recently, but my impression was that it was a very similar setup.
I usually dust off my S950 using a handheld vacuum and a 3" wide paintbrush.

- Greg