Remove neck, heart, gizzard, and liver from turkey. Reserve neck, heart, and gizzard for Homemade Turkey Stock; discard liver. Rinse turkey thoroughly with cold water; pat dry. Trim excess fat.
Combine onion, celery, 1 tablespoon rosemary, 1/2 teaspoon salt, and 1/4 teaspoon pepper. Stuff body cavity with onion mixture. Tie ends of legs with twine. Lift wing tips up and over back; tuck under bird.
Place a roasting rack coated with cooking spray in a roasting pan.
Place turkey, breast side up, on rack.
Brush with butter; sprinkle evenly with 1 teaspoon salt and 1/4 teaspoon pepper.
Pour 1 cup Homemade Turkey Stock in bottom of pan. Insert a meat thermometer into meaty part of thigh, making sure not to touch bone. Cover turkey breast tightly with foil.
Bake at 325 for 2 hours, basting with 1/3 cup Homemade Turkey Stock every 30 minutes (1 1/3 cups total).
Remove foil; bake an additional 1 1/2 hours or until thermometer registers 180, basting with 1/3 cup Homemade Turkey Stock every 30 minutes (2/3 cup total).
Remove turkey from oven; let stand 30 minutes. Discard skin.
Place a zip-top plastic bag inside a 2-cup glass measure.
Pour pan drippings into bag; let stand 10 minutes (fat will rise to the top). Seal bag, and snip off 1 bottom corner of bag.
Drain pan drippings into a measuring cup, stopping before the fat layer reaches the opening. Reserve 2 tablespoons fat, and discard remaining fat.
Combine the pan drippings with 2 cups Homemade Turkey Stock.
Heat 2 tablespoons reserved fat in bottom of roasting pan over medium heat.
Add flour, stirring with a whisk. Cook 1 minute, stirring constantly. Stir in the pan drippings mixture.
Combine water and cornstarch, stirring with a whisk.
Add the cornstarch mixture to pan, stirring with a whisk. Bring to a boil, stirring frequently.
Add 1 tablespoon rosemary. Reduce heat, and simmer 5 minutes or until sauce thickens. Stir in 1/4 teaspoon salt and 1/4 teaspoon pepper.