Heat oven to 400ºF.
Peel the potatoes and cut them into 1/2-inch dice. Put them in a medium saucepan and cover with cold water. Set said pan over high heat, cover and bring to a boil. Uncover, drop the heat to maintain a simmer, and cook until tender, 10 to 15 minutes.
Heat the oil in an 11-inch saute pan over medium-high heat until shimmering. Add the onion and carrots and saute just until they begin to take on color, 3 to 4 minutes. Add the garlic and stir to combine. Add the meat, salt and pepper, and cook until browned and cooked through, approximately 3 minutes.
Sprinkle the meat with the flour, toss to coat, and continue to cook for another minute. Add the tomato paste, broth, Worcestershire sauce, rosemary, and thyme and stir to combine. Bring to a boil, then decrease the heat to low, cover, and simmer slowly until the sauce is thickened slightly, 10 to 12 minutes.
Meanwhile, combine the half-and-half and butter in a microwave-safe container and nuke till warmed through, about 35 seconds.
Drain the potatoes and return them to the saucepan. Mash the potatoes (a masher is an excellent tool for this, though a hand mixer will also do), then add the hot half-and-half mixture, as well as the salt and pepper. Mash to smoothness, then stir in the egg yolk.
Add the corn and peas to the meat mixture and spread evenly in a 7-by-11-inch glass baking dish. Top with the mashed potatoes, starting around the edges to create a seal to prevent the mixture from bubbling over, and smooth the top with a rubber spatula. Place on a half sheet pan lined with parchment paper on the middle rack of the oven and bake for 25 minutes, or just until the potatoes begin to brown. Remove to a cooling rack and let rest for at least 15 minutes before serving.