Add sliced onions and butter to a skillet over medium-low heat. Cook slowly, stirring occasionally, until deeply caramelized and soft, about 15-20 minutes. Set aside to cool slightly.
While the onions are cooking, make the meat mixture. In a large bowl, combine ground beef, milk, eggs, oats, onion soup mix, and Worcestershire sauce. Mix until just combined.
Lay overlapping sheets of plastic wrap or foil on a work surface. Turn the meat mixture out onto it and pat into an even rectangle, about 3/4 inch thick.
Spread the caramelized onions evenly over the meat mixture. Then lay the Swiss cheese slices on top of the onions.
Using the plastic wrap or foil to help, roll the meat tightly into a log starting from one of the long ends (so the stuffed meatloaf roll is longer and thinner rather than short and fat). Twist the ends to secure the shape.
Refrigerate the rolled meatloaf about 20 minutes to firm up before smoking.
While the meatloaf is chilling, preheat a pellet grill or smoker to 275°F.
Place the meatloaf on a grill-safe sheet tray. Then remove the plastic wrap or foil. Place the sheet tray on the pellet grill or smoker, and smoke until internal temperature reaches 145°F, about 1.5 hours.
When the meatloaf is almost up to 145℉ internal, make the glaze by mixing the brown gravy and ketchup together in a small bowl. Then brush over the entire meatloaf.
Continue smoking until internal temperature reaches 165°F, about another 30 minutes. You may glaze 1-2 more times.
Rest for 5-10 minutes before slicing and serving.