Start the potatoes. Preheat the oven to 375°F. Put the potatoes in a large pot and cover with cold water. Salt the water, bring to a boil, and cook until fork-tender, about 15–20 minutes once boiling.
Cook the bacon and onion. Meanwhile, cook the bacon in a skillet until crisp. Drain on paper towels and crumble. Reserve a little bacon for serving. Pour off the bacon grease, then heat the olive oil in the skillet over medium heat. Sauté the onion for 4–5 minutes, until softened. Let cool slightly.
Soak the breadcrumbs. In a large mixing bowl, combine the breadcrumbs and ½ cup milk. Let soak for 5 minutes.
Mix the meatloaf. Add the ground beef, cooked onion, egg, Worcestershire sauce, ketchup, garlic powder, salt, and pepper to the soaked breadcrumbs. Gently mix just until combined.
Bake the meatloaf layer. Press the mixture evenly into a 9×13-inch baking dish. Bake uncovered for 25 minutes. The meatloaf will finish cooking after you add the potatoes.
Make the loaded mashed potatoes. Drain the cooked potatoes well. Mash with the butter and warm milk, then stir in the sour cream, 1 cup cheddar, and most of the bacon. Taste before adding up to ½ teaspoon salt. Add a splash more milk only if needed for spreading.
Add the topping. Carefully remove the meatloaf from the oven and spoon off any excess grease. Dollop the loaded mashed potatoes across the meatloaf, then gently spread them to the edges. Sprinkle with the remaining ½ cup cheddar.
Finish baking. Return to the oven immediately and bake uncovered for another 20–25 minutes, or until a food thermometer inserted into the center of the meatloaf layer reads 160°F. If needed, continue baking until it reaches that temperature. Let rest for 10 minutes.
Make the gravy. While the casserole finishes baking, melt the butter in a small saucepan over medium heat. Whisk in the flour and cook for 1–2 minutes, stirring constantly, until lightly golden. Gradually whisk in the beef broth until smooth. Add Worcestershire sauce, onion powder, and pepper. Bring to a gentle simmer and cook for 3–5 minutes, stirring, until the gravy lightly coats a spoon. Taste before adding salt. Thin with a splash of broth if needed.
Serve. Sprinkle the reserved bacon over the rested casserole. Cut or scoop into portions and drizzle gravy over each serving. Pass the remaining gravy at the table.