Mix the chili powder, paprika, cumin, oregano, salt, and pepper in a small bowl.
In a large skillet over medium-high heat, cook the ground beef and beef heart for 5 minutes or until brown. Crumble it as it cooks so it is brown all over.
Pour the meat into a strainer and drain the fat into a small sauce pan. Discard all but 3 tablespoons of fat.
Whisk the fat and flour together over medium heat. This makes a roux. Cook it, stirring frequently, until it turns amber, about 15 minutes. Then whisk in the chicken stock, tomato paste, and vinegar. Simmer on low while you --
Add the onion, garlic, and red bell pepper to the ground meat in the skillet and cook for another 5 minutes.
Push everything aside and add the spices and cook in contact with the bottom of the pan for 2 minutes, stirring so the spices don't stick to the bottom. This "blooms" the flavor. Then mix them in with the meat.
Add the roux mix ingredients and stir it inches Simmer for at least 15 minutes, an hour is better.
Pour 1/3 of the mix into your blender and puree it until it is pasty, and mix it back inches If you prefer you can use a stick blender to get the mix thick.