Just had this problem on my 2011. After replacing the switch with an OEM one, the light stayed on still even after turning it on and off several times.
Took apart the passenger kick panel, inspected the connector mentioned in previous posts, and found corrosion.
The light finally went off after cleaning off the corrosion with contact cleaner. Snaked the moonroof drain holes with grass trimmer line and applied dielectric grease to the connector to hopefully prevent this from happening again.
Thanks to everyone for all the helpful tips.