Preheat the oven to 350°F and generously butter a 9x13-inch baking dish.
In a skillet over medium heat, melt the butter. Add the diced onions and cook for 15–20 minutes, stirring occasionally, until they are golden and soft.
Bring a large pot of salted water to a boil and cook the lasagna noodles according to the package instructions. Drain the noodles and lay them flat so they don’t stick together.
Place the mashed potatoes in a large bowl and warm them slightly if needed. Stir in 1 cup of warm milk until the mixture is smooth and creamy. The potatoes should be soft and slightly runny.
Spread one third of the mashed potatoes evenly over the bottom of the prepared baking dish. Sprinkle with 1 cup of shredded cheddar cheese and half of the caramelized onions. Place 3 lasagna noodles on top.
Spread another third of the mashed potatoes over the noodles. Sprinkle with 1 cup of cheddar cheese and the remaining caramelized onions. Add the final 3 noodles, then spread the last third of the mashed potatoes over them. Top with the remaining 1 cup of cheddar cheese and the crisp, crumbled bacon, if using.
Cover the dish with foil and bake for 40 minutes. Remove the foil and bake for another 20 minutes, until the lasagna is heated through and lightly golden on top.
Let the lasagna rest for 10–15 minutes before slicing. Serve it warm with a generous dollop of sour cream and fresh chopped dill. Enjoy!