Bring a large pot of salted water to a boil. Cook macaroni according to package instructions. Once cooked to al dente, reserve one cup of pasta water and drain noodles. Rinse with cool water and set aside.
Heat the olive oil in a large oven-safe skillet over medium-high heat. Add the onion and sauté for 3-4 minutes, stirring frequently. Push the onions to the far side of the skillet and reduce heat to medium-low. Add the butter to the skillet. As the butter melts slowing whisk in the flour, creating a roux. Do not burn.
Slowly whisk in the milk with the roux and reincorporate the onions. With the milk fully incorporated, whisk in the pizza sauce, Italian seasoning, salt, and pepper, if needed. Stir in 1 cup of the mozzarella cheese and the cheddar cheese with the sauce and mix in the pre-cooked macaroni noodles and half of the pepperonis.
If you would like to thin the sauce a little, stir in the reserved pasta sauce with the sauce and noodles (this is optional).
Top the skillet with a single layer of pepperoni and sprinkle with remaining shredded mozzarella cheese.
Preheat oven to broil and broil for 3-4 minutes or until cheese is melted and the top is starting to brown.