Place beans in a medium pot or bowl; add water to cover by 2 inches. Cover and refrigerate overnight, 8 to 12 hours. Drain beans.
Heat a large cast-iron skillet over medium-high; add chiles and garlic. Add onion wedges, cut side down, in skillet. Cook, turning occasionally, until chiles are blackened and onion wedges and garlic are charred in spots, 4 to 5 minutes for chiles and 8 to 10 minutes for onion and garlic. Remove from heat. Remove and discard stems and seeds from chiles. Cut chiles into small pieces. Peel garlic; discard skins. Add chiles, garlic, charred onion, and 1 cup beef stock to a blender; process until smooth, about 1 minute.
Place drained beans, diced tomatoes, chile mixture, and remaining 7 cups beef stock in a large Dutch oven. Bring to a boil over medium-high. Stir in sugar, cumin, salt, and oregano. Reduce heat to low; cover and simmer, stirring occasionally, until beans are al dente, about 2 hours.
Stir in burnt ends and vinegar; simmer, uncovered, over medium, stirring occasionally, until liquid thickens and beans are tender, 40 minutes to 1 hour. (If needed, add water to maintain a saucy consistency.) Season with salt to taste. Serve with hot sauce.
