I think your point about contaminants decaying is probably the most important one. Blood should decay into dried blood, which, due to bacteria and vermin, should decay into dust. Any organic contaminant should decay pretty rapidly, except when it's extremely cold.
Dust, by the way, does not need to actually exist in the game. Unless a dwarf has recently cleaned themselves, they should always have dust on them. Being dusty should be the default state of everything in the game. Dwarven civilizations live deep underground, regularly dig into soil and rock, haul the resulting debris around, and burn charcoal, wood and lignite in underground furnaces, smelters and kilns. When they're not doing that, then they're traipsing around on the surface getting covered in dirt and mud. Everyone here is familiar with having to regularly clean dust and take showers, and we surface-dwellers aren't likely to be exposed to even 1/10th as much dust as dwarves would get. Your typical dwarven fortress would probably have a layer of dust, pebbles, food bits and soot 6 inches deep in every room. It's unnecessary for the game to calculate how this dust moves and where it is. Just assume it's everywhere, and label everything as being dusty and dirty.
There should be a [CLEAN] tag for things that are actually clean. This could be regarded as an anti-contaminant. Clean things should give dwarves better than normal happy thoughts, e.g. "Urist had a fine groundhog roast in a clean dining room recently." or "Urist admired a masterful and very clean platinum door recently."
I like the idea of using cloth to clean things, but I think it would be better if dwarves had special-purpose cleaning tools. A mop and bucket, for example, should be a very effective way to clean up a contaminant without getting it on your hands.