Preheat oven to 375°.
Place bread in a food processor, pulse until coarse crumbs form to measure 1/2 cup; set aside.
Lightly spoon flour into a dry measuring cup, and level with a knife. Place flour in a large saucepan. Gradually add milk, stirring constantly with a whisk. Bring to a boil; reduce heat, and simmer mixture for 2 minutes or until thick. Remove from heat; stir in 2 tablespoons Parmesan and the next 5 ingredients (2 tablespoons Parmesan through chipotle chiles), stirring until cheese melts. Combine cheese sauce, pasta, onions, and tomatoes in a bowl.
Spoon the mixture into a 13 x 9-inch baking dish coated with cooking spray. Combine 2 tablespoons remaining Parmesan and breadcrumbs; sprinkle over pasta mixture. Cover and bake at 375° for 10 minutes. Uncover and bake for an additional 10 minutes or until mixture is bubbly.
Note: To make ahead, assemble casserole as directed, but stop before adding breadcrumb topping. Cover and refrigerate overnight. Let stand 30 minutes at room temperature; sprinkle with breadcrumb topping, and bake as directed.