Grate onion, drain juice, set aside. Cube most of Velveeta, shred remaining 2 oz. Put a pot of water on to boil. Heat oven to 350 degrees. Melt 4 tablespoons butter in small dish (for breadcrumbs), and melt 6 tablespoons butter in another large saucepan.
When butter in large saucepan is melted, sauté onion until golden. Add breadcrumbs to the 4 tablespoons of butter, and stir well, on medium heat, until golden brown (will take a while, keep stirring). When onion is golden, add flour, stir well and cook (while stirring) about 2 minutes. Add dry mustard and Worcestershire sauce. Then add milk gradually, while stirring.
Cook on medium heat until sauce comes to a boil and thickens, stirring often. Add salt, then cubed Velveeta. Then add all shredded cheddar except 1 ½ cups. When cheese is melted taste to see if more salt is needed. Add ham and stir well. Cook macaroni about 6 or 7 minutes, should still be a little firm. Drain well and add to cheese sauce mixture. Spray a 9 X13 pan with nonstick cooking spray. Fill with cheese macaroni mixture, and spread evenly. Dot top with remaining Velveeta, then mix remaining cheddar with bread crumbs and spread evenly on top of macaroni mixture. Bake at 350 degrees until bubbly 20 to 30 minutes.