Preheat the oven to 350°F. Line 2 rimmed baking sheets with parchment paper. Whisk together the eggs, half-and-half, sugar, cocoa powder, vanilla, cinnamon, and nutmeg in a large bowl.
Working with one slice at a time, dip the bread in the batter until soaked through. Transfer the dipped bread to the prepared baking sheets. (I put 6 slices onto each baking sheet.) Reserve the leftover batter for the second dip.
Bake the French toast for 15 to 18 minutes or until set. Remove the bread from the oven and let cool long enough to be able to handle. Dip the bread a second time in the leftover batter.
Melt the butter in a large skillet over medium heat. Add the bread to the skillet and cook, in batches, until crisp on each side. Remove to a platter and serve warm with desired toppings.