Heat vegetable oil in a dutch oven or large pot over medium-high heat. Season chicken with salt and pepper and add to pot, cooking 5 minutes on each side. You want to brown the chicken, but not cook it all the way through. Remove from pot and set chicken aside.
Turn the heat down to medium, and add the onions to the same pot. Saute until soft and translucent, about 5 minutes. Add the garlic, ginger, and habanero (if using) and saute 1 minute. Add tomato paste and peanut butter and saute 1 more minute.
Add the bay leaves, cayenne, water or stock, carrots, sweet potatoes, and cabbage. Return the chicken to the pot, and bring to a boil. Turn heat down to medium, and simmer, covered, until chicken is cooked through and vegetables are soft, 30-40 minutes.
Using a slotted spoon, lift vegetables and chicken out of the liquid into a large bowl. Break the chicken into smaller pieces using two forks.
Turn the heat up on the liquid left in the pot, and cook, stirring, until liquid is reduced into a thick sauce. This should take 5-10 minutes. Add the chicken and vegetables back into the sauce, and stir in the lime juice. Taste, and add salt and hot sauce to taste.
Serve over rice or millet, with cilantro and peanuts sprinkled on top.