The main thing to remember, the oil that does the job is inside the pins- not all over the outside- anything on the outside of the chain will only attract dirt. It should be almost dry on the outside-only enough lube to keep it from rusting and that is not much.

I use White Lightning lube as a cleaner- it sucks as a lube, but it does a good job displacing dirt so I can just wipe it off with a rag. Then I lube with T9 (I've tried a lot of lubes, but keep coming back to T9), making sure to wipe off any excess. Then I hit the cassette with a shop rag, between the cogs like flossing, and the chainrings get a wipe. Done. I only hit the chain with chain cleaner every 5 rides or so, or if I got it wet while riding.

Park makes a cassette brush that I sometimes use to scrub the cassette and chain if it is really bad- it's thin enough to get between the cogs and I can jam it into the chain if needed.