Place the milk, heavy cream, cocoa powder, salt, and tapioca flour into a medium saucepan over medium heat. Bring the mixture to a boil while stirring constantly with a whisk. Once the mixture boils, remove from the heat and let it cool for a minute.
Drop the chopped chocolate pieces into the mixture and whisk gently until completed combined.
While the mixture is cooling, whisk the egg yolks with sugar until they lighten in color (i.e., a pale-yellow color) in a large bowl. Temper the eggs by pouring a small amount (approximately 1/3) of the cream mixture into the egg bowl while whisking constantly. This will allow the eggs to warm up slowly without scrambling them.
Pour the remainder of the cream mixture into the egg bowl while whisking constantly and then return the entire mixture to the saucepan.
Cook the mixture on low heat while stirring frequently until the mixture thickens slightly. Continue cooking until the custard reaches 170-175°F/77-80°C using an instant-read thermometer. Do not let the custard boil. It will cause the custard to curdle.
Strain the custard through a fine mesh strainer into another container. Straining ensures the removal of any cooked eggs from the final custard.
Allow the custard to sit at room temperature to cool (approximately 30 minutes), then add the vanilla extract and stir to combine.
Next, cover the chocolate custard with a piece of plastic wrap that touches the surface. This will keep the custard from developing a skin while cooling. Leave the custard in the fridge for 4 to 8 hours, or until the ice cream has cooled completely (i.e., 40°F/4°C or below).