Butter a 3 quart casserole dish (9 x 13) generously and set aside.
Cut the loaf of bread into 3/4 inch cubes and spread them in your buttered pan.
In a medium sauce pan over medium-low heat add the eggnog, milk, nutmeg, cinnamon and salt. Let the mixture heat until it is steaming but do not let it boil!
While the eggnog mixture is heating, in a large mixing bowl whisk together the eggs, egg yolks, and sugar.
Remove the hot eggnog mixture from the stove and slowly add it to the eggs and sugar, whisking constantly. When all of the eggnog has been added, whisk in the vanilla and rum (if desired). Pour this custard over the bread cubes and gently press the cubes down to be sure they are all getting soaked! Cover the soaking bread cubes and let them sit for 30 minutes at room temperature.
Meanwhile, bring a kettle of water to boiling to use for the water bath. Preheat your oven to 375 degrees F. Put a roasting pan in the oven on the middle rack to get hot: this is your water bath pan. Alternatively, you can use a cake pan of hot water on the lowest rack beneath your pudding.
When the 30 minutes are up, set the pudding pan into the hot roasting pan and pour the boiling water into the roasting pan until it’s about halfway up the sides of the pudding pan.
Bake for 40 minutes or until the pudding is set and the top is a light golden brown. Remove from oven and let sit for 10 minutes before serving.
While the pudding is cooling, make the hard rum sauce. Stir the butter and brown sugar in a small saucepan over medium heat until the butter is melted. Add the half and half, rum, and cinnamon. Bring to a simmer and let it cook for about 5 minutes, until the sauce has thickened slightly.
Dust the top of the pudding with a bit of nutmeg if you would like and serve warm with the hard rum sauce. Alternatively you may serve the pudding (as I do for the munchkins) with warm maple syrup.