Heat the oil in a large Dutch oven over medium heat until shimmering but not smoking.
Add the onions, bell pepper, garlic, chili powder, cumin, coriander, red pepper flakes, oregano, and cayenne and cook, stirring occasionally, until the vegetables are softened and beginning to brown, about 10 minutes.
Increase the heat to med-high and add half the beef, breaking up the chunks with a wooden spoon , until no longer pink and just beginning to brown, 3-4 minutes.
Add the remaining beef and cook, breaking up the chunks with the wooden spoon until no longer pink, 3-4 minutes.
Add the beans, tomatoes, tomato puree, and 1/2 teaspoon salt.
Bring to a boil, then reduce the heat to low and simmer, covered, stirring occasionally, for 1 hour.
Remove the cover and continue to simmer 1 hour longer, stirring occasionally (if the chili begins to stick to the bottom of the pot, stir in 1/2 cup water and continue to simmer), until the beef is tender and the chili is dark, rich, and slightly thickened.
Adjust seasonings with additional salt to taste.
Serve with the lime wedges and condiments of your choice-diced fresh tomatoes, diced avocado, sliced scallions, chopped red onion, chopped cilantro, sour cream, and shredded Monterey Jack cheese or cheddar cheese.