Preheat broiler.
Place a large pot of water over high heat and bring it up to a boil to cook the pasta. Once at a boil, add some salt and the pasta and cook it until al dente according to package directions.
Snap off the woody stems of the asparagus by holding the spears at each end and bending them. The stems will just snap off! Discard the woody fibrous end and cut the asparagus spears in half so they are bite-sized and about the size of the noodle. When the pasta has about 3-4 minutes left of cooking time, add in the asparagus and cook along with the pasta.
While the pasta and asparagus are cooking, heat a medium-size skillet over medium heat and add the butter. When the butter melts, add the flour and cook about a minute. Whisk in the stock, milk, hot sauce and Dijon, and bring to a bubble, stirring frequently, until the liquid thickens slightly. Remove from heat and stir the cheddar, gruyere and one handful Parmigiano in a figure-eight motion. Fold in ham, parsley and tarragon and taste to adjust seasonings.
Drain cooked pasta and asparagus well and combine with the cheese sauce. Turn the mixture out into a casserole dish then top with remaining Parmigiano. Transfer to the oven and place under the broiler to brown the cheese.
While the mac and cheese is browning, make the salad by combining the mustard, white wine vinegar, shallots and a little salt and pepper in a mixing bowl. In a slow, steady stream, whisk in 3 tablespoons of EVOO. Add the grape tomatoes and smash some of them against the side of the bowl with a fork so their juices become part of the dressing. Add the sliced cumbers and toss to coat. Serve alongside the Ham and Cheese Mac.