In a small saucepan, melt 1 tablespoon butter over medium heat. Add 1 tablespoon onion and cook, stirring, until softened, about 3 minutes. Whisk in the flour and stir for 1 minute. Whisk in the milk and simmer for 2 minutes, then whisk in the cheese and season to taste with salt and pepper. Cover the cheese sauce and set aside.
Melt the remaining 1 tablespoon butter in a medium skillet over medium heat. Add the remaining onion and cook, stirring, until golden, about 7 minutes. Add the spinach and cook until soft, 3 to 4 minutes. Season to taste with salt and pepper.
Fill a small nonreactive skillet with 1 inch of water. Add the vinegar and a pinch of salt and bring to a boil. Meanwhile, toast the English muffin. Crack the eggs into saucers, then slide them into the boiling water and simmer until desired doneness, about 3 minutes for lightly poached. Transfer to a plate using a slotted spoon.
Rewarm the cheese sauce over low heat. Top each English muffin half with 1 prosciutto slice, 1 tomato slice, half the spinach, some cheese sauce, another prosciutto slice, a poached egg and more cheese sauce.