To clean keycaps, I put them in a bowl of water with a bit of dish soap, and swirl them around a bit. Then I swap out the water and add a few denture tabs, and leave it 4+ hours. Then I swap out the water again and add a tiny bit of dish soap again, which takes the denture tab residue off better than straight water. Then I rinse in water a couple of times. If there are any remaining dirty spots, a quick swipe with a sponge or scrubber should fix it. Then I just leave them to try on a towel for a day or two.
Overall, it only takes about 3 minutes of active effort, plus a bunch of waiting in between.
So far this has worked perfectly for a few sets of *extremely* greasy dirty gross keycaps.