Heat the olive oil in a Dutch oven over medium-high heat. Season the veal shanks with salt and pepper, then brown them on all sides. Remove the shanks and set aside.
Add the onion, carrots, and celery to the pot. Cook until softened. Stir in half the minced garlic and the tomato paste. Cook for one minute.
Pour in the white wine and scrape up any browned bits. Return the veal shanks to the pot along with the broth, thyme, and bay leaf. Bring to a simmer, cover, and braise in a 325°F oven for 2 1/2 to 3 hours until the meat is very tender.
While the osso buco finishes, start the risotto. Heat 2 tablespoons butter in a large skillet over medium heat. Add the remaining onion and cook until translucent. Stir in the arborio rice and toast for two minutes.
Warm the remaining broth with the saffron threads in a separate saucepan. Add the broth one ladle at a time to the rice, stirring until absorbed before adding more. Continue until the rice is creamy and cooked through.
Finish the risotto by stirring in the remaining butter and Parmesan cheese. Keep warm.
Remove the osso buco from the oven. Skim excess fat from the sauce if needed. Serve each shank over a portion of saffron risotto. Sprinkle with the parsley, lemon zest, and remaining garlic.