Good news! I've fixed dozens of systems with this exact problem. It's very straightforward and doesn't require much disassembly.
Pull the back off, and spray contact cleaner directly into the switch (in the tiny gap around the switch's button). Note that you'll need to disassemble the rear shell a little to get to the switch, but you won't need to pull the motherboard. (In the original DSI there'l be one flat connector to lift off, and in the XL there'll be two.)
Then rapidly and gently push the button a whole bunch.
That will clear away dust or micro corrosion that's interfering with the electric contact.
Reassemble, and it should work better. If it's not perfect, try again.
I've never had a console whose button needed more than three contact cleaner applications. And that was only with buttons that completely stopped working.