To make the marinade, combine half the yellow onion, the green bell pepper, scallions, garlic, ginger, thyme, allspice, and salt in a blender or food processor. If you like it spicy, add a piece of the scotch bonnet. Blend until it forms a rough paste.
Clean the chicken pieces with lime juice or vinegar and water, then pat completely dry. Place the chicken in a large bowl, pour the marinade over it, and rub it into all the pieces. Cover and refrigerate for at least 4 hours or overnight.
Heat the vegetable oil in a large Dutch oven or heavy pot over medium heat. Add the curry powder and stir constantly for 30-60 seconds until fragrant. This step, called 'burning the curry,' deepens its flavor.
Add the marinated chicken to the pot in a single layer, shaking off excess marinade first. Cook for 3-4 minutes per side until browned. Do this in batches if needed to avoid crowding the pot.
Return all chicken to the pot. Add the chicken broth, scraping up any browned bits from the bottom. Chop the remaining half of the onion and add it to the pot along with the whole scotch bonnet pepper. Bring to a simmer, then reduce heat to low, cover, and cook for 15 minutes.
Stir in the carrots, potatoes, and coconut milk. Ensure the vegetables are mostly submerged. Bring back to a simmer, then cover and continue to cook for 20-25 minutes, or until the vegetables are fork-tender and the chicken is cooked through.
Check that the chicken has reached a safe internal temperature of 165°F (74°C). Remove the whole scotch bonnet pepper before serving. Taste the sauce and add more salt if needed. Let it rest for a few minutes for the sauce to thicken slightly.