Heat the oil in a large saucepan or Dutch oven over medium-high heat. Season the lamb shanks with salt and pepper. Add the shanks a few at a time, without overcrowding. Brown them well on all sides, about 8 minutes, and set aside on a plate. Repeat until all the shanks are nicely browned, adding more oil if necessary.
In the same pan, brown the onions. Reduce the heat to low and add the minced garlic. Stir well, then add the diluted tomato paste. Cook, stirring with a wooden spoon, for 7 to 10 minutes, until a deep, dark red. Add another tablespoon or two of water to prevent scorching, if needed.
Add the stock, raise the heat, and bring to a boil, then reduce to a simmer. Add the bay leaves, thyme, 2 teaspoons salt, and 1 teaspoon pepper. Slowly add the peanut butter 1 to 2 tablespoons at a time, stirring constantly to dissolve it in the liquid.
Return the shanks to the pot, pressing down to submerge them in the sauce. Add the Scotch bonnet and fish sauce. Bring to a boil, then reduce the heat to a simmer. Cover and cook for about 1 hour and 30 minutes, until the shanks are tender.
Uncover the pot and continue cooking until the sauce is thick and coats the back of a spoon. Remove the bay leaves and skim off the fat. Adjust the seasoning.
Serve the lamb shanks and sauce hot, on a platter. Top each shank with a generous pinch of gremolata and serve with a side of fonio pilaf.