If using a combination of different sausages (Hot, sweet, Italian, Brats, etc), do NOT combine them into one mix for the meatballs. It adds to the great flavor for the meatballs to be different. Using wet hands, lightly roll sausage into 12 golf ball-size balls (about 2 oz. each).
Heat 2 tablespoons of the oil in a large Dutch oven or other heavy pot over medium heat. Cook meatballs, turning occasionally, until just browned all over on outside, 6-8 minutes. Transfer to a plate.
In same pot (do not clean out the pan) add 2 more tablespoons oil, add fennel, onion and HALF of the garlic, season with salt and pepper and cook, stirring often, until onion is translucent and golden brown around edges, 8-10 minutes.
Add the tomatoes, crushing them with your hands as you go, and bring to a simmer. Season with more salt and pepper and cook, stirring occasionally, until sauce just begins to thicken, about 5 minutes.
Return meatballs to pot, bring to a simmer, and cook, stirring occasionally, until sauce is reduced by half and meatballs are coated and cooked through, 15-20 minutes.
Meanwhile, heat broiler. Process fresh basil, remaining garlic, and remaining 4 tablespoons oil in a food processor to a smooth paste; season with salt and pepper. If making the sub out of a large French loaf, cut a "boat" out of the top of the loaf, being careful not to cut through the bottom. Hollow out the inside of the cut at least half way down. Smear half of the basil paste into the opening of the loaf of bread. If using hoagie buns, smear over cut side of rolls. Place on a rimmed baking sheet. Broil rolls or loaf just until golden brown, about 2 minutes.
Place meatballs inside hollow of loaf or inside rolls, then top with sauce and mozzarella. Roil until mozzarella is melted and bubbling, about 5 minutes (watch carefully). Spoon remaining basil mixture over sandwiches. For French loaf, cut into individual slices, about 2" thick just before serving.