Cut the ciabatta slice into small cubes, place in a bowl, cover with milk and let soak until softened, then squeeze out most of the milk.
In a large bowl combine the ground beef, minced onion, Parmesan, minced fresh thyme, egg, chopped basil, lemon zest, salt, and black pepper.
Add the squeezed ciabatta to the meat mixture and mix until just combined; avoid overworking.
Form the mixture into meatballs of about 2 oz each; roll in your hand, then gently press to slightly flatten.
Heat 2 tbsp extra virgin olive oil in a very large frying pan over high heat until shimmering, add meatballs without crowding, and sear without moving for about 3 minutes to form a crust.
Turn the meatballs and sear the other side about 3 minutes, using juices to baste; when both sides are seared, remove from heat—the meatballs will finish cooking in the sauce.
Meanwhile, heat 2 tbsp extra virgin olive oil in a saucepan with the crushed garlic; gently cook the garlic until golden, then discard the garlic.
Add the chopped peeled tomatoes, a couple of basil leaves, and the bay leaf to the pan; season with salt, pepper and a pinch of sugar, reduce heat and simmer 10–15 minutes.
About halfway through the sauce cooking time, add the seared meatballs to the sauce and continue to simmer until meatballs are cooked through and flavors meld.
While the sauce finishes, cook the spaghetti in a large pot of lightly salted boiling water for about 8 minutes or until al dente according to package instructions.
Drain the pasta and add it to the pan with the meatball sauce; toss to combine and heat through.
Serve immediately topped with grated fresh Parmesan and extra basil leaves if desired.