Place beans in a large bowl, and cover with 4" cold water; let soak overnight.
Drain beans, place in a large pot, add salt, and cover with 2" water.
Bring to a boil; reduce to a simmer cover and let cook until the largest bean is tender (about 45 minutes).
Meanwhile, heat oil in a separate large, heavy-bottomed pot over high heat. Add onions and cook, stirring occasionally, until they begin to turn golden about (12 minutes).
Stir in garlic and cook for 2 minutes. Add chili powders, cumin, and oregano. Cook and stir for 30 seconds. Add 1 cup water, then stir, scraping the bottom of the pot. Add tomatoes, chipotle pepper, and cocoa. Stir well to combine.
When mixture comes to a boil, reduce to a simmer; cover and cook for 20 minutes (or until the beans in the other pot are done).
When beans are ready, drain them and add to the tomato mixture. Cover and cook on low heat, stirring occasionally, for 40 minutes.
Serve with Greek yogurt, lime wedges, and chopped cilantro.