Preheat oven to 350°F with a rack in top third position. Coat a 9-by-13-inch broiler-safe baking dish with cooking spray.
Bring a large saucepan of water to a boil. Add 8 ounces pasta; cook according to package directions for al dente. Drain the pasta and return to the saucepan.
Meanwhile, heat 2 tablespoons oil in a large skillet over medium heat. Add ½ cup shallots and 1 tablespoon garlic; cook, stirring often, until the shallots are softened and translucent, about 2 minutes.
Stir in ⅔ cup wine; cook, stirring constantly, until barely reduced, about 1 minute.
Whisk 2½ cups broth and 3 tablespoons flour together in a measuring cup; gradually add to the pan, whisking until smooth and starting to thicken. Bring to a boil over medium-high heat.
Reduce heat to medium-low; whisk in 4 ounces cream cheese. Cook, stirring constantly, until melted and smooth, about 3 minutes.
Stir in 10 ounces spinach; cook, tossing constantly, until wilted, about 2 minutes. Remove from heat.
Add 4 cups chicken, the spinach mixture, 2 tablespoons Parmesan and ⅛ teaspoon salt to the pasta; stir until fully combined.
Transfer the mixture to the prepared baking dish and spread in an even layer. Sprinkle with the remaining 4 tablespoons Parmesan.
Bake until the Parmesan is melted, about 15 minutes. Increase oven temperature to broil; do not remove the casserole. Broil until the topping is lightly browned, about 3 minutes.
Sprinkle with the remaining ⅛ teaspoon salt. Let stand for 5 minutes. Sprinkle with parsley, if desired.
