Step 1In a large bowl, dissolve the kosher salt in the cold water. Add the chicken, cover and refrigerate for 4 hours.
Step 2Pour off the salt water, rinse the chicken and drain. Put the chicken in a bowl, add the buttermilk and turn the pieces to coat. Cover and refrigerate for 4 hours or overnight.
Step 3In a large, sturdy plastic bag, put the flour, cornstarch, potato starch if using, 1 1/2 teaspoons fine salt and one-half teaspoon pepper and shake to combine. Set aside one-half cup flour mixture for the gravy. Lift the chicken from the buttermilk, wiping off any excess liquid. Arrange the pieces on a wire rack and let dry for 5 minutes. Add the chicken to the bag, a few pieces at a time, and shake to coat. Shake off any excess flour and return the chicken to the rack.
Step 4Meanwhile, in a large cast-iron skillet, melt the lard and butter. Add the bacon and cook over moderate heat until crisp, 5 to 6 minutes. Reserve the bacon for another use. Add the chicken, in batches if necessary, and cook over moderate heat, turning, until golden, crisp and cooked through, about 30 minutes. Lower the heat if necessary. Transfer to a wire rack to drain.
Step 5Transfer one-fourth cup cooking fat to a large saucepan and add the onion and garlic. Cook over moderate heat, stirring occasionally, until golden, 5 to 6 minutes. Add the reserved one-half cup seasoned flour and cook, whisking, for 2 minutes. Add the tomatoes and thyme, and stir constantly until blended. Whisk in the cream and milk until the sauce is smooth. Season with salt and pepper to taste and cook over moderate heat, stirring occasionally, until thickened, about 10 minutes.
Step 6Transfer the fried chicken to a platter. Serve with tomato gravy.