Bring a large pot of salted water to a boil. Add the whole wheat penne and cook until al dente, according to the package instructions. Reserve 1 cup of the pasta water (don’t forget!), then drain and set aside.
Meanwhile, melt the butter in a Dutch oven or similar large, deep pot over medium heat. Once it melts, stir in the garlic, Italian seasoning, salt, and pepper.
Sprinkle the flour over the top. Cook, stirring constantly, for 1 to 2 minutes, until the white bits of flour completely disappear and the mixture looks dark golden.
Slowly pour in the milk, pausing to whisk as you go to dissolve any lumps. Bring to a steady simmer. Let simmer, stirring often and scraping a wooden spoon along the bottom of the pot to keep the sauce from sticking, until the sauce is reduced, about 3 minutes.
Reduce the heat to low. Stir in the Parmesan until smooth.
Add the spinach a handful at a time, stirring until it wilts. Stir in the sun-dried tomatoes. If your pasta is not ready yet, turn off the heat.
As soon as you drain the pasta, add it to the sauce and squeeze the lemon juice over the top. Stir gently to combine. If the sauce is too thick, add the reserved pasta water as needed to loosen it. Taste and adjust seasoning as desired. Sprinkle with the parsley. Serve hot, with additional Parmesan sprinkled on top.