Heat oven to 300°F. Place croissants cut-side up on a sheet pan and warm for 5 to 7 minutes until lightly crisp at the edges, then keep loosely covered.
Melt butter in a small saucepan over medium-low heat. Stir in flour for 1 minute, gradually whisk in 3/4 cup milk and simmer for 2 minutes until smooth and thickened.
Remove sauce from heat and stir in cheddar, mustard and pepper until melted. Keep over the lowest heat, stirring occasionally and adding up to 2 teaspoons milk if needed to keep it spoonable.
Heat oil in a skillet over medium heat and sear ham for 2 to 3 minutes per side until hot and browned at the edges. Bring poaching water and vinegar to a bare simmer in a wide saucepan.
Crack eggs into four small cups and slide them separately into the gently simmering water. Poach for 4 to 5 minutes until whites are fully set, or longer for firm yolks; lift with a slotted spoon and drain well on a clean towel.
Put one ham slice and one poached egg on each croissant bottom. Spoon one-quarter of the cheddar sauce over each egg and set the top on gently; serve immediately.