Bring a large pot of salted water to a boil over medium high heat. Cook the pasta until just al dente, drain and set aside.
Return the pot to medium heat, add the butter and allow to melt. Add the shallots and sweat them until the shallots are soft and translucent, about 5 minutes.
Stir in the pimento peppers, paprika and cayenne until combined.
Add the flour, continuing to stir until pale brown, about 2 minutes. Whisk in the milk and bring to a simmer. Continue to simmer until the sauce coats the back of a spoon, about 10 minutes. Season to taste with salt and pepper.
Add the cream cheese, stirring until it’s fully incorporated. Slowly add the Cheddar cheese about ½ cup at a time, whisking until everything has combined.
Add the cooked pasta to the cheese sauce and stir to combine.
Top with green onions and ladle into serving bowls.