Pat chicken pieces dry with paper towels.
In a large bowl, whisk together buttermilk, hot sauce, salt, black pepper, garlic powder, onion powder, and paprika.
Add chicken pieces to the buttermilk mixture, coat thoroughly, cover, and refrigerate for at least 4 hours or overnight.
Remove chicken from the fridge 30 minutes before frying to come closer to room temperature.
In a shallow dish, whisk together flour, cornstarch, baking powder, salt, black pepper, paprika, garlic powder, onion powder, and cayenne pepper.
One piece at a time, dredge chicken in the flour mixture, pressing coating firmly; place coated chicken on a wire rack over a baking sheet and rest for 10–15 minutes.
Pour oil into a heavy pot or Dutch oven and heat over medium-high until it reaches 325–350°F.
Carefully lower 3–4 chicken pieces into the hot oil and fry for 10–15 minutes, flipping occasionally, until golden brown and internal temperature reaches 165°F.
Transfer fried chicken to a wire rack set over paper towels to drain excess oil.
Repeat frying remaining chicken, ensuring oil returns to temperature between batches.
Serve immediately; store leftovers in an airtight container in the refrigerator for up to 3–4 days.