Whisk together buttermilk, salt and pepper in a large bowl. Slice halibut fillets horizontally, to create thinner fillets, and submerge in the buttermilk. Let sit at room temperature for about an hour.
Pour the milk for the gravy into a medium pot, place the onion cut-side down in the milk, and season with the salt and pepper. Warm over low heat for about 10 minutes without simmering, to infuse the flavors. Remove the onion, and whisk in the butter and flour, bringing up the heat to medium. Continue to whisk often, for 10-12 minutes, until the gravy is thick. Taste, adjust seasoning, and keep warm.
In a separate large bowl or plate, whisk together the flour with the dredge seasonings. Prepare a baking sheet lined with a rack
Pour oil into a deep-sided pan, and heat until shimmering.
Remove the halibut one at a time from the buttermilk, wiping off any excess, and dredge in the flour mixture, pressing it into the fish. Gently lay the dredged fillets into the hot oil, in batches, so as not to overcrowd the pan. After about 5 minutes, flip the halibut, and continue to cook until golden on both sides, then remove to the rack to drain. Repeat with the rest of the halibut.
Serve with mashed potatoes, gravy, steamed veggies, and a fried egg.