Heat 1 tablespoon of butter in a skillet over medium heat, and cook and stir the onion and green pepper until the onion is translucent, about 5 minutes; stir in ham, and cook until ham is hot, about 1 more minute. Transfer to a bowl, and set aside. Melt 1 more tablespoon of butter in skillet over medium heat, and cook and stir the mushrooms until they have given up their liquid and started to brown, about 10 minutes. Add the cooked mushrooms to the ham mixture.
Melt 2 tablespoons of butter in a saucepan over medium heat, and stir in flour, salt, and black pepper. Cook and stir until the flour lightens in color slightly, about 1 minute; gradually whisk in milk, and cook until thickened, whisking constantly. Do not boil.
Mix in the Cheddar cheese, and stir until the cheese melts. Reduce heat to a bare simmer, and cook the sauce for about 10 more minutes. Whisk frequently.
Drain any juices from the ham and mushroom mixture, and stir the mixture into the sauce; mix in the chopped hard-cooked eggs. Bring mixture back to a simmer, and serve over toasted English muffins.