As others have suggested, physical cleaning is your only hope. Separate anything inert which can be (case, stabilizers, key caps, cable) and get it cleaned in water plus some kind of cleaner. Working with the PCB+plate+switches requires more finesse since you don't want to get anything in the switches which interferes with operation or changes the character significantly. Blowing/vacuuming dust is a must - you want to get down to the plastic and the smoke film and nothing else. I wouldn't have many qualms about using a zero residue commercial contact cleaner on the entire board. Sometimes these act as degreasers so don't focus the spray into the switches, but wash the entire board. Any kind of soft brush scrubbing and wipedown with paper toweling will help get the crud off. After that you could try the coffee, ionizer, forced fresh air etc... techniques to get rid of any remaining smell.
Then reassemble and see where you stand...