Por más que busqué no encontré funciones que quitaran los acentos eficientemente. Las que funcionaban medianamente bien, fallaban cuando los caracteres eran UTF-8, por lo que me puse en campaña, y llegué a esto:

 
	function quitarAcentos($text)
	{
		$text = htmlentities($text, ENT_QUOTES, 'UTF-8');
		$text = strtolower($text);
		$patron = array (
			// Espacios, puntos y comas por guion
			'/[\., ]+/' => '-',
 
			// Vocales
			'/à/' => 'a',
			'/è/' => 'e',
			'/ì/' => 'i',
			'/ò/' => 'o',
			'/ù/' => 'u',
 
			'/á/' => 'a',
			'/é/' => 'e',
			'/í/' => 'i',
			'/ó/' => 'o',
			'/ú/' => 'u',
 
			'/â/' => 'a',
			'/ê/' => 'e',
			'/î/' => 'i',
			'/ô/' => 'o',
			'/û/' => 'u',
 
			'/ã/' => 'a',
			'/&etilde;/' => 'e',
			'/ĩ/' => 'i',
			'/õ/' => 'o',
			'/ũ/' => 'u',
 
			'/ä/' => 'a',
			'/ë/' => 'e',
			'/ï/' => 'i',
			'/ö/' => 'o',
			'/ü/' => 'u',
 
			'/ä/' => 'a',
			'/ë/' => 'e',
			'/ï/' => 'i',
			'/ö/' => 'o',
			'/ü/' => 'u',
 
			// Otras letras y caracteres especiales
			'/å/' => 'a',
			'/ñ/' => 'n',
 
			// Agregar aqui mas caracteres si es necesario
 
		);
 
		$text = preg_replace(array_keys($patron),array_values($patron),$text);
		return $text;
	}

Cualquier comentario es bienvenido.