1 Melt chocolate: Melt chocolate in a double boiler (you can use a makeshift double boiler by placing a metal bowl over a small saucepan of boiling water, just don’t let the bottom of the bowl touch the water).
2 Add boiling water, cocoa powder, half of the sugar: When the chocolate has melted, transfer to a medium-sized, heavy-bottomed saucepan, turn heat to medium low, and add the boiling water, cocoa powder and half of the sugar. Whisk vigorously until there are no lumps. Remove from heat.
3 Finish making the chocolate mixture: Add the milk, 1 cup of the cream, remaining sugar, instant coffee (if using), and the salt to the chocolate base, and whisk vigorously until fully incorporated, then use a rubber spatula to scrape the bottom and sides of the pan.
When the chocolate base is smooth, set the pot over medium high heat and warm, stirring occasionally, until the base starts to steam.
4 Temper the egg yolks: Whisk the egg yolks in a medium sized bowl. Once the chocolate base has heated to point of being steamy, temper the eggs by slowly pouring some of the hot base into the eggs while whisking the eggs vigorously to prevent them from cooking.
Once you've incorporated about half of the base with the eggs, pour the egg mixture back into the pan with the rest of the chocolate base and stir to combine.
5 Heat the base until it starts to thicken, remove from heat, add chilled cream: Lower the heat to medium, and heat the base until it reaches 170°F. At this point the base will have thickened slightly and will just be getting steamy again. Remove from heat.
Stir in the remaining cup of cold cream, to prevent further cooking.
6 Strain out any solids, place in bowl in ice water bath, stir in vanilla: Pour the chocolate base through a mesh strainer into a bowl to strain out any solids or curds, and place bowl in an ice bath to speed up the chilling. Stir in the vanilla.
7 Chill the base completely: Chill ice cream base for several hours, preferably overnight, until completely chilled. (To speed up this process you can put the ice cream base, still in its bowl in the ice bath, in the freezer for an hour, stirring every 20 minutes.)
8 Process in ice cream maker: Churn in your ice cream maker according to the manufacturer’s directions. If you like soft ice cream, eat immediately. Otherwise, transfer it to a freezer container and put it in the freezer for a couple hours to firm up.
Note that the ice cream may be quite hard when you first take it out of the freezer, so you may want to let it sit for a few minutes to soften before trying to scoop.