The SoZ encounter area OnExit clean-up script gets rid of items dropped on the ground, loot bags / corpses, any remaining creatures, and persistent AOEs (delayed fireball, glyph of warding, etc).
I've adapted it even further, so that it checks whether you've dropped any items with the plot flag set to TRUE (you don't want to be destroying those!). My script also checks the value of items, and anything worth at least 50 gp gets sent to a garbage pile on the outskirts of a town (which is where plot items end up as well). That way you can be lazy and let the script sort out the valuable items for you.
The one problem I encountered is that GetGoldPieceValue() doesn't return the correct value for unidentified items. I therefore have to identify things before seeing what they're worth. I've had no luck setting the copied items to be unidentified again.
EDIT: I've since decided that any unidentified item automatically gets sent to the garbage pile, regardless of its worth. That avoids the unidentifying problem, and stops players from simply dropping unidentified items while in an encounter area and getting them identified for free. I may randomly send some of the items (and perhaps uncollected gold) to various stores as well.