Bring a large pot of salted water to a boil. Add the spaghetti and cook until just al dente, about 8-9 minutes. Drain and set aside. Toss with 1 tablespoon olive oil to prevent sticking.
In a large skillet, melt 1 tablespoon of butter over medium heat. Add the chopped onion and sauté until translucent, about 3 minutes. Add the minced garlic and cook for another 30 seconds until fragrant.
Increase the heat to medium-high, add the chicken pieces, season with salt, pepper, and Italian seasoning, and cook until golden and cooked through, about 5-7 minutes. Remove chicken and set aside.
In the same skillet, melt 1 tablespoon butter. Add the sliced mushrooms and sauté until they release their moisture and start to brown, about 6 minutes. Season lightly with salt and pepper.
Add the chicken broth and heavy cream to the mushrooms. Bring to a gentle simmer, scraping up any browned bits on the pan. Reduce heat to low and add the softened cream cheese, stirring until smooth and creamy. Mix in the grated parmesan and half of the shredded mozzarella cheese until melted and fully incorporated.
Return the cooked chicken to the skillet and stir to combine. Add the cooked spaghetti and toss gently to coat every strand in that luscious sauce.
Preheat your oven to 350°F (175°C). Transfer the pasta mixture into a greased 9x13 baking dish. Sprinkle the remaining mozzarella cheese evenly on top. Dot the last tablespoon of butter over the cheese to promote browning. Bake uncovered for 20-25 minutes or until the top is golden and bubbly.
Let the Three Cheese Chicken Tetrazzini rest for about 5 minutes before serving. This allows the sauce to thicken slightly for perfect slicing and serving.