Drain the soaked beans and add to a large pot with water to cover by 2 inches. Bring to a boil, reduce to a simmer, and cook uncovered for 45–60 minutes until tender but still holding shape. Skim foam during the first 10 minutes.
While beans cook, blend the tomatoes, bell peppers, scotch bonnet peppers, and half the onion until mostly smooth with a little texture remaining.
In a separate heavy-bottomed pot, heat the red palm oil over medium heat until liquid and shimmering. Add the remaining diced onion, ginger, and garlic paste; cook 2–3 minutes until fragrant.
Add the blended pepper mixture and cook over medium heat, stirring occasionally, for 15–20 minutes, until the sauce darkens to a deep brick-red and the oil rises back to the surface.
Drain most of the liquid from the cooked beans, reserving 1 cup. Add the beans to the pepper sauce along with the crayfish, stock cubes, and bay leaf. Stir to combine, adding reserved bean liquid as needed to loosen.
Mash about a third of the beans against the side of the pot to thicken. Simmer uncovered for 10–15 minutes, stirring occasionally, until the stew coats the back of a spoon. Taste and adjust salt before serving.