Whisk the eggs, milk, salt, and pepper in a medium bowl. Heat a 6-inch nonstick skillet over medium-low heat. Brush the skillet with some butter. Working quickly, pour 3 tablespoons of the egg mixture into the pan, swirling to coat the bottom of the pan evenly. Cover and cook until the egg crepe is just set, about 1 minute. Invert the skillet over a plate, and allow the egg crepe to drop onto the plate. Repeat to make 10 crepes total, brushing the skillet with melted butter as needed and stacking crepes on the plate.
Preheat the oven to 400 degrees F.
Butter a 13 by 9 by 2-inch baking dish. Arrange 1 egg crepe on a work surface. Place some of the fontina and mozzarella cheese in the center of the egg crepe, then sprinkle with some basil. Roll up the crepe. Place the filled crepe in the prepared baking dish, seam side down. Repeat with the remaining egg crepes, cheese, and basil. Spoon the marinara sauce over the crepes. Sprinkle with the Parmesan and dot with 2 tablespoons of butter. Bake until the cheese melts and the top is golden, about 15 minutes.
In a large casserole pot, heat the oil over a medium-high flame. Add the onions and garlic and saute until the onions are translucent, about 10 minutes. Add the celery, carrots, and 1/2 teaspoon of each salt and pepper. Saute until all the vegetables are soft, about 10 minutes. Add the tomatoes and bay leaves, and simmer uncovered over low heat until the sauce thickens, about 1 hour. Remove and discard the bay leaf. Season the sauce with more salt and pepper, to taste. (The sauce can be made 1 day ahead. Cool, then cover and refrigerate. Rewarm over medium heat before using.)