Boil pasta in a pot of salted water according to box directions until it is right at al dente! Set aside.
Prepare a large casserole dish by greasing it with cooking spray or butter. Set aside. Grab a broil-safe pan and cover with foil. Spray with nonstick spray. Preheat oven to broil.
Slice tomatoes into 1/4-inch slices. Place on prepared boil-safe pan in one even layer. Sprinkle with a little salt. Place in oven and broil until they just begin to char, about 10 minutes. Remove and turn broiler off.
Melt butter in a large skillet over medium heat. Add garlic and cook until fragrant, about 30 seconds. Add flour and whisk for 2 minutes. It should turn into a paste.
Reduce heat to medium low and gradually add the milk about 1/4 cup at a time, whisking between each addition. Once all the milk is added, increase heat to medium so that the sauce begins to boil and thicken.
Keep whisking sauce until it has thickened to almost the texture of a gravy. Add salt and pepper. Taste it to make sure it tastes right. Add more seasoning if needed. Once thickened, reduce heat to low. Add 1/4 cup of Parmesan cheese and whisk into the sauce. Add the 1/3 of the shredded cheese and stir. Whisk until all the cheese has melted. Add another 1/3 of the cheese and whisk until melted. Add final 1/3 of cheese and whisk together. Once all the cheese is melted, remove from heat. Give it a taste to make sure you have enough seasoning.
Preheat broiler again. Add pasta to casserole dish and top with cheese sauce. Stir together to combine. Top with broiled tomatoes into one even layer. Sprinkle with Parmesan cheese. Place in preheated oven to melt the Parmesan cheese and broil the tomatoes a little more, about 6 minutes.
Remove from oven and let it cool for a couple minutes before serving.