Preheat oven to 350 °F and lightly grease a 6 cup baking dish.
Cook bacon in a large sauté pan until crisp, then remove bacon to a paper-towel lined plate, reserving fat in pan. Over medium heat, sauté onions in bacon fat until translucent, about 5 minutes. Add corn kernels, thyme, celery salt, lemon zest, garlic, salt and pepper and cook for another 3 minutes. Remove pan from heat to cool slightly.
In a large bowl, whisk egg yolks, whole egg and cream. Stir in cooled corn mixture, cornmeal and reserved bacon. Pour mixture into prepared baking dish and place dish into a larger pan, and fill larger pan with hot water, so that it comes almost to the same level as the corn pudding. Bake uncovered for about 30 minutes, until it no longer jiggles when moved. Remove pan carefully from water bath and serve.