Bring a pot of salted water to a boil. Add the pasta and cook as the label directs. Reserve 3/4 cup of the cooking water, then drain the pasta. Meanwhile, melt 1 tablespoon butter in a large nonstick skillet over medium heat. Add the onion and cook, stirring, until soft, about 5 minutes. Add the tomato paste and chili powder and stir until brick red, about 2 minutes. Add the beef and cook, stirring, until browned, 4 minutes. Stir in 1/2 teaspoon salt. Spread the mixture in a 3-quart flameproof baking dish. Preheat the broiler. Melt the remaining 2 tablespoons butter in a pot over medium heat. Add the flour and cook, stirring, 1 minute. Add the milk and reserved cooking water, bring to a simmer and cook, whisking, until thick, 2 minutes. Add 2 cups cheese, the cooked pasta and 3/4 teaspoon salt and stir until the cheese melts. Spread over the beef mixture. Mix the remaining 1/2 cup cheese and the breadcrumbs; sprinkle over the pasta mixture and broil until golden. Top with the scallions.