In a large pot over medium heat, warm 2 tablespoons oil. Add the sausage, break it up into chunks, then let it cook undisturbed for 3 minutes or until deeply browned. Break it up into smaller chunks, stir in the beans, and continue to cook, undisturbed until the beans are golden on the bottom, about 3 minutes. Transfer to a bowl or plate to cool down a bit.
In the same pot over medium heat, add the remaining 1 tablespoon oil, onion and ½ teaspoon salt. Cook until softened, about 3 minutes, stirring occasionally and scraping up any brown bits stuck to the bottom of the pot.
Add the cabbage, ½ teaspoon salt, thyme, and pepper and cook until the cabbage has wilted down, about 5 minutes, stirring occasionally.
Stir in the potatoes, water, coconut milk, and remaining ½ teaspoon salt. Cover and bring to a boil over high heat, then reduce the heat to medium-low and simmer rapidly for 10 minutes. Remove the lid and simmer rapidly for 10 more minutes or until the potatoes are cooked through/very soft. Add about 4-5 cups of the soup to a blender and blend until smooth, allowing the steam to escape. Stir back into the pot along with the lemon juice.
Meanwhile, to the warm beans/sausage, add the herbs, garlic, and sprinkle with a generous pinch of salt. Use your hands to toss everything to mix together.
Serve the soup topped with the warm sausage/bean mixture, cheese (if using), and black pepper.