Trim any excess fat from your chicken pieces and pat them dry with paper towels. In a large bowl, combine the buttermilk with salt, black pepper, garlic powder, onion powder, cayenne, and fresh thyme. Whisk until well incorporated.
Place the chicken pieces in the marinade, ensuring each piece is fully submerged. Cover with plastic wrap and refrigerate for 12-24 hours. For the most tender results, gently massage the chicken through the bag every 6 hours if possible.
About 30 minutes before cooking, remove the chicken from the refrigerator to take the chill off. In a large shallow dish, combine all the coating ingredients and whisk thoroughly. Reserve ½ cup of the marinade in a separate bowl for dipping.
In a large cast-iron skillet, pour oil to a depth of about 1 inch (approximately 1/3 full). Heat the oil over medium heat until it reaches 350°F (175°C).
Remove the chicken pieces from the marinade, allowing excess liquid to drip off. Dip each piece in the reserved marinade, then immediately into the flour mixture. Press the flour firmly onto the chicken to create a substantial coating.
For extra crispiness, dip the coated chicken back into the marinade and then into the flour mixture a second time.
Place the chicken pieces skin-side down in the hot oil, being careful not to overcrowd the pan (work in batches if necessary). Darker meat (thighs and legs) requires slightly longer cooking, so start with these pieces.
Maintain oil temperature between 325-350°F (163-175°C) throughout cooking. Fry for 12-15 minutes, then carefully flip and cook for another 10-12 minutes until golden brown and the internal temperature reaches 165°F (74°C) for white meat and 175°F (80°C) for dark meat.
Transfer the fried chicken to a wire rack set over a baking sheet (not paper towels, which can make the coating soggy). Allow to rest for 10 minutes before serving – this critical resting period allows the juices to redistribute throughout the meat.