Let both cheese stand at room temperature for 30 minutes.
Cook macaroni in a large pot according to package directions until tender, but still firm, adding broccoli during the last 5 minutes of cooking. Drain well and return to pot; set aside.
Meanwhile, in a medium saucepan, cook the onion in the 3 tablespoons butter until tender but not brown. Stir in the flour and the pepper. Add the milk all at once. Cook and stir until the mixture is slightly thickened and bubbly. Remove from heat. Gradually add both cheeses, stirring until melted (the mixture will appear slightly curdled). Pour over the macaroni and broccoli and stir gently to combine. Transfer mixture to a 2 1/2- to 3-quart baking dish.
In a small bowl combine melted butter, bread crumbs, and Parmesan cheese. Toss to coat. Sprinkle over the macaroni mixture.
Bake in a 350°F oven about 20 minutes or until heated through. Let stand for 5 minutes before serving.