In a small sauté pan, heat the olive oil over medium heat. Sauté the onions until translucent, about 4 to 5 minutes.
Add the garlic and sauté until fragrant, 1 minute more. Set aside, and let cool.
In a large bowl, combine the cooled onion mixture with all the other meatball ingredients. Mix well to combine. Using your hands, roll the mixture into small balls. Place the meatballs on a sheetpan until ready to cook. If not cooking right away, cover gently with plastic wrap and store in refrigerator.
In a medium skillet, heat the olive oil over medium heat. Place the meatballs in the hot pan, and allow to cook until nicely browned on each side and cooked through, about 8 to 10 minutes (you can also sear the meatballs and finish them in the oven, if desired).
To make the tomato sauce, heat the olive oil in a small pot. Add the onion and sauté until translucent, about 4 to 5 minutes. Add the garlic and sauté until fragrant, 1 minute more. Deglaze the pan with the tomato paste, then stir in the tomatoes. Season the sauce with salt and pepper, and bring to a simmer. Simmer for about 10-15 minutes to develop the flavor. Taste and adjust seasonings. If the tomato sauce has too much of a bite, add a sprinkle or two of granulated sugar.
Stir in the basil and the cooked meatballs. Give the meatballs a gentle toss and let them very gently simmer in the sauce while you prep the baguette.
Don't keep them simmering too long because you don't want them to dry out. If you're worried, turn the stove off.
Carefully slice open each of the 4 pieces of baguette, and place 4 halves on a rimmed baking sheet. Place the mozzarella on each of the 4 bread slices. Toast the bread under the broiler until the cheese is melted and bubbly, about 2 minutes.
Toss the meatballs in the tomato sauce, and spoon some meatballs onto the bread.