In a large bowl, add the beans and enough water to cover them by 2 inches or so. Let sit at least 4 hours, preferably overnight.
In a large saucepan or pot, add the oil and bring heat to medium-high. Add the white onion, bell pepper, jalapeños, garlic, black pepper, white pepper, cumin, oregano, and a pinch of salt to season. Sauté until softened, 6 minutes, then remove half of the mixture and set aside in a bowl to add back later.
Add the soaked beans and cover with 4-5 cups of water, sugar, and 2 Tbsp of salt. Bring to a boil, then reduce heat to medium-low and simmer for 45 minutes, stirring occasionally. After 45 minutes, add the lime and sautéed sofrito mixture from earlier.
Taste for salt and additional seasonings and continue cooking 30-45 minutes more, stirring every 15 minutes or so, until the beans are tender. Before serving, add in the rice vinegar, remove the lime halves, and use the back of a spoon to crush some of the beans against the wall of the pot to thicken the sauce.
Serve warm and plain, or garnish with fresh tomato, white onion, cilantro, and cotija cheese.