Heat extra-virgin olive oil, 2 turns of the pan, in a large pot or Dutch oven over medium-high heat. Add the pancetta and render a couple of minutes, then add the onions and sliced garlic and potato - if you prefer pasta, add later when you reheat the soup. Season the onions, garlic, and potatoes with salt and pepper and add a bay leaf. Cook to soften, and then add the escarole to the pot and season with salt, pepper, and nutmeg, cover to wilt. Stir in the cannellini beans and stock plus 2 cups water. Bring to a boil, and then reduce heat to a rolling simmer.
Meanwhile, douse bread with milk to soften. Place ground meats in bowl. Season the meat with salt and pepper, fennel, paprika, crushed red pepper, cheese, and parsley. Add the yolk to the bowl, squeeze the milk out of the bread and crumble to add to the meat. Drizzle with extra-virgin olive oil and roll meat into walnut-size balls, then add to soup and poach until cooked through.
Cool completely and store soup for make-ahead meal. To reheat the soup: Place in a covered pot and bring to a boil, add the pasta to cook to al dente if you prefer the pasta to potato. Serve soup in shallow bowls with shredded cheese on top and an extra drizzle of extra-virgin olive oil. Crust up some bread in hot oven while soup reheats for mopping.