Set oven rack in the bottom of the oven and preheat to 325°F. Set a wire roasting rack in a large roasting pan and coat the rack with cooking spray.
To prepare turkey: Combine parsley, thyme, rosemary, shallots and 1 tablespoon oil in a small bowl. Season with salt.
Reserve giblets and neck for the stock; discard the liver. Remove any visible fat from the turkey. Rinse it inside and out with cold water and pat dry. Season the cavity with salt and pepper and place onion in cavity.
With your fingers, separate the turkey skin from the breast meat, taking care not to tear the skin or pierce the meat. Smear the herb mixture between the flesh and the skin on both sides of the breastbone. Tie the drumsticks together and tuck the wing tips behind the back. Set the turkey, breast-side up, in the prepared roasting pan and tent with foil.
Roast the turkey for 2 hours.
Meanwhile, to prepare giblet stock: Heat 1 1/2 teaspoons oil in a large heavy saucepan over medium heat. Add chopped onion, carrots, celery and the turkey neck and giblets. Cook, stirring occasionally, until well browned, about 15 minutes. Pour in broth and bring to a boil. Reduce the heat to low and simmer, partially covered, for 30 minutes. Strain the giblet stock through a fine sieve (you should have about 2 cups). Chill until ready to use. fter the turkey has been in the oven for 2 hours, remove the foil and continue roasting, basting with white wine from time to time, until an instant-read thermometer inserted into the thickest part of the thigh registers 180°F, 45 minutes to 1 1/4 hours longer. Transfer the turkey to a carving board. Cover loosely with foil and let rest for 20 to 30 minutes before carving.
To prepare gravy: While the turkey is resting, pour the drippings from the roasting pan through a strainer into a small bowl, then place the bowl in the freezer for 20 minutes to solidify the fat. Add Madeira to the roasting pan and cook, stirring and scraping up any brown bits, for about 1 minute; strain into a medium saucepan. Skim the fat from the giblet stock and add the stock to the pan. Skim the fat from the chilled pan juices and add the juices to the pan as well. Bring to a simmer. Add the cornstarch mixture to the simmering sauce, whisking until the gravy has thickened slightly. Season with pepper.
Remove strings from turkey and carve, discarding the skin. Serve with the Madeira gravy.