Wrap the beets in aluminum foil and bake for about an hour at 400°F (200°C) or until they can be easily pierced with a fork (small beets can be done after 45 minutes, medium after about an hour, large need about an hour and a half).
While the beets are baking prepare the sides: cook potatoes until soft, mash them with 3 Tbsp butter and 1/4 cup milk while still hot. Season with salt and pepper to taste.
Dice the onion, cut the bacon into cubes. Heat the oil and 2 Tbsp of butter in a large frying pan. Add the onions and bacon, cook over medium-low heat for 5-10 minutes or until the onions are soft, lightly caramelized, and the bacon is browned. Transfer them to a plate lined with paper towels. (If you want the bacon super crispy cook it separately from the onions.)
When the beets are cool enough to handle, peel them and grate on the large holes of a box grater (use gloves!).
Add the beets to a large pot, add the broth. Bring to a boil, add the vinegar, and simmer for 10-15 minutes.
Temper the cream: add both types of cream to a cup, gradually add a couple of tablespoons of hot soup, stirring after each addition. Add the tempered cream to the pot. You can also mix this in a food processor (it's easier to perfectly combine the sour cream with the soup). Add the tempered cream to the soup.
Add marjoram, lemon juice, chopped dill, and sugar. Season the soup with salt and pepper then adjust the seasonings to your taste - add more vinegar or lemon juice if it's too sweet or add more sugar if it's too sour. The soup should have a distinct flavor and taste sweet and sour.
Put some mashed potatoes into a soup plate, pour in some soup, top the potatoes with bacon and onions (you can also serve mashed potatoes, onions, and bacon on a separate plate).
Enjoy!