Marinate chicken pieces in buttermilk and hot sauce for at least 4 hours or overnight in the refrigerator.
Boil potatoes in salted water until fork-tender, approximately 15 to 20 minutes.
Drain potatoes and mash with butter and 1/2 cup milk until smooth; keep warm.
In a shallow bowl, whisk 2 cups flour with salt, pepper, paprika, and cayenne.
Remove chicken from buttermilk and dredge thoroughly in the flour mixture, pressing to ensure a thick coating.
Heat oil in a large cast-iron skillet to 350 degrees Fahrenheit.
Fry chicken in batches until golden brown and the internal temperature reaches 165 degrees Fahrenheit, about 12 to 15 minutes per batch.
Drain chicken on a wire rack.
For the gravy, retain 1/4 cup of the frying drippings in a skillet and whisk in 1/4 cup flour over medium heat for 2 minutes.
Slowly whisk in 2 cups milk and simmer until thickened, seasoning generously with salt and black pepper.