CSS Tidy is a little overkill. That's more for optimisation of the CSS code, rather than the just doing security checks.
That Automattic plugin was a darn good suggestion to look at though!
I've only had a quick flick through the code, but from what I can see, they are actually using wp_kses() and then rewriting the entities back intto their corresponding characters.
PHP Code:
$css = str_replace( '<=', '<=', $css );
// Why KSES instead of strip_tags? Who knows?
$css = wp_kses_split($prev = $css, array(), array());
$css = str_replace( '>', '>', $css ); // kses replaces lone '>' with >