Heat Dutch oven over medium-high heat and add olive oil. Brown ground beef in batches, breaking it up and seasoning with salt and pepper, about 8-10 minutes. Transfer to a plate with a slotted spoon, leaving fat in the pot.
Reduce heat to medium and sauté onions and bell peppers until onions are translucent and peppers softened, about 8-10 minutes. Add garlic and cook one minute more, stirring constantly.
Add chili powder, cumin, smoked paprika, oregano, cayenne, and cocoa powder directly to the vegetables. Stir constantly for 1-2 minutes until very fragrant to release the essential oils.
Stir in tomato paste and cook one minute. Return beef to the pot, then add crushed tomatoes, tomato sauce, beef broth, Worcestershire sauce, brown sugar, and apple cider vinegar. Season with salt and pepper, bring to a boil, then reduce heat to low.
Partially cover and simmer gently for 1.5 to 2 hours, stirring occasionally, until the sauce thickens and flavors meld. Taste and adjust seasoning as needed.
Add drained and rinsed kidney and pinto beans, stir well, and continue simmering another 30 minutes, stirring occasionally.
Adjust salt, pepper, or cayenne to taste. Add broth if too thick or simmer uncovered 15-20 minutes if too thin. Remove from heat and rest 10 minutes before serving.