Preheat the oven to 375°F and grease a 9 x 13-inch baking dish.
If using fresh asparagus, blanch it: boil water, cook asparagus for 1 minute, drain, then rinse with cold water. Set aside.
Place a large skillet on the stove over medium heat. Melt 1 tablespoon of the butter. Add the onion and cook 3–4 minutes. If using mushrooms, add them and cook 6–8 minutes until the pan is mostly dry. Add the garlic and cook 30 seconds.
Add the remaining butter to the skillet. Whisk in the flour and cook 1 minute. Slowly whisk in the chicken broth, then the milk. Simmer 3–5 minutes until thickened.
Turn the heat to low and stir in sour cream, parmesan, 1 cup mozzarella, Italian seasoning, black pepper, and Dijon (optional). Taste and add salt as needed.
Combine the cooked chicken and blanched asparagus with the sauce. Transfer to the baking dish and spread evenly.
Sprinkle the remaining mozzarella over the top. If using panko, toss it with olive oil or melted butter and sprinkle over the cheese.
Bake uncovered for 20–25 minutes, until hot and bubbly. Optional: broil 1–2 minutes at the end for extra browning.
Rest 10 minutes before serving.