Zest and juice 1 1/2 lemons. Cut remaining lemon half into wedges and set aside.
Bring a large pot of lightly salted water to a boil. Add penne and cook, stirring occasionally, until tender yet firm to the bite, about 11 minutes. Drain, reserving 1 cup of cooking water.
While penne is cooking, melt 2 tablespoons butter in a pot over medium heat and cook asparagus until softened, 4 to 5 minutes. Season with salt and pepper and remove from pot.
Add remaining 3 tablespoons butter and heat until a pinch of flour sprinkled into the pot will just begin to bubble. Whisk in flour to form a thick paste the consistency of cake frosting. Continue cooking, whisking constantly, for about 5 minutes. Whisk in cream and vegetable broth and bring to a simmer. Simmer for 1 to 2 minutes.
Stir lemon juice, lemon zest, and parsley into the sauce; season with salt, pepper, and sugar. Add asparagus and heat through, about 2 minutes. Add tomatoes and penne to the sauce and pour in some of the reserved cooking water. Serve with shaved Parmesan and lemon wedges.