Combine chicken, celery, onion, salt, and water in a Dutch oven. Bring to a boil; cover and simmer 1 hour or until chicken is tender. Remove chicken from broth; cool. Remove chicken from bones; chop meat, and set aside. Strain broth; discard vegetables. Refrigerate broth until all fat has risen to the top; skim off fat, and set aside. Reserve remaining broth.
Melt 3 tablespoons reserved fat in a heavy saucepan over low heat; add flour, stirring until smooth. Cook 1 minute, stirring constantly. Gradually add 1 1/2 cups of reserved broth; set remaining broth aside. Cook over medium heat, stirring constantly, until thickened and bubbly. Combine egg yolks and cream; stir well. Gradually stir about one-fourth of hot mixture into egg mixture; stir into remaining hot mixture. Cook over medium heat, stirring constantly, until mixture is smooth and thickened.
Sauté mushrooms in remaining fat 2 minutes. Add sautéed mushrooms, salt, and chicken to cream sauce; stir well.
Cook spaghetti according to package directions in remaining broth plus enough water to equal 3 quarts liquid.
Drain spaghetti, and place in a 10-inch pie plate. Spoon chicken mixture over top; sprinkle with Parmesan cheese, and dot with butter. Broil 6 inches from heat 5 minutes or just until cheese is lightly browned.