Melt the butter in a large pot over medium heat. Add the diced onion and cook for about 2 minutes, stirring occasionally, until it becomes translucent and fragrant. Add the minced garlic and cook for another minute until it's aromatic but not browned—this creates the flavor foundation for the entire soup. Sprinkle the sifted flour over the mixture and stir constantly for 2 minutes. This cooking step is crucial because it removes the raw flour taste and creates a roux that will thicken the soup without lumps.
Slowly whisk in the chicken stock and heavy cream, stirring constantly to prevent lumps from forming in the roux. I like to add the stock gradually at first—about 1 cup—while whisking vigorously, then add the rest more confidently once it's smooth. Bring the mixture to a gentle simmer over medium heat, stirring occasionally, until it thickens slightly, about 3-5 minutes. This is when you'll see the soup transform from a thin liquid into something silky and rich.
Add the uncooked egg noodles directly to the simmering soup and stir well to separate them. Simmer for about 8-9 minutes, stirring occasionally to prevent sticking. In the last minute of cooking, add the broccoli florets and let them cook briefly until they're just tender-crisp. The noodles will absorb some of the liquid as they cook, creating a thicker, heartier soup texture.
Stir in the cooked shredded chicken and freshly grated Parmesan cheese, mixing until the cheese melts completely and is evenly distributed throughout the soup. Taste and season with salt and freshly ground black pepper to your preference. I find it's better to start with less salt and adjust upward, since the stock and Parmesan already contribute quite a bit of sodium. The soup is ready to serve immediately while it's hot and creamy.