In a large bowl, whisk buttermilk, hot sauce, salt, and pepper. Add chicken pieces, ensuring they are fully submerged. Cover and refrigerate for at least 4 hours, preferably overnight.
In a shallow dish, whisk together flour, cornstarch, paprika, garlic powder, onion powder, cayenne, salt, and black pepper until evenly combined.
Remove chicken from marinade, letting excess drip off. Dredge each piece in the flour mixture, pressing firmly to adhere. Dip back into the buttermilk marinade, then dredge again in the flour mixture for a second thick coat. Place on a wire rack set over a baking sheet and let rest for 10 minutes.
In a large cast-iron skillet or Dutch oven, heat oil to 350°F (175°C) over medium-high heat. Use a deep-fry thermometer to maintain temperature.
Carefully place chicken pieces in the hot oil, skin side down, without crowding the pan (work in batches). Fry dark meat pieces 12–15 minutes, flipping halfway; white meat 15–18 minutes, until deep golden brown and an instant-read thermometer inserted into thickest part registers 165°F (74°C).
Transfer fried chicken to a clean wire rack set over a baking sheet to drain. Do not use paper towels, which can steam the crust. Let rest 5–10 minutes before serving.