Preheat oven to 325°F (165°C). Place a 9-inch round cake pan or flan mold in a large roasting pan. Bring a kettle of water to a boil for the water bath.
Make the caramel: Add 1 cup sugar to a dry, heavy-bottomed saucepan over medium heat. Without stirring, let the sugar melt and turn deep amber, gently swirling the pan occasionally, about 8-10 minutes. Immediately pour into the cake pan, tilting to coat the bottom evenly. Set aside to cool for 3 minutes.
Warm the coconut milk, whole milk, and heavy cream in a medium saucepan over low heat until steaming but not boiling, about 3 minutes. Remove from heat and stir in the salt.
In a large bowl, whisk together the eggs, egg yolks, and 3/4 cup sugar until smooth and pale, about 1 minute. Do not overbeat or you'll create too many bubbles.
Slowly pour the warm milk mixture into the eggs while whisking gently and constantly to temper the eggs. Stir in the vanilla extract and coconut extract if using.
Strain the custard through a fine-mesh sieve directly into the caramel-lined pan to remove any lumps or air bubbles. Gently tap the pan on the counter a few times to release trapped air.
Carefully place the roasting pan in the oven, then pour the boiling water into the roasting pan until it reaches halfway up the sides of the flan pan. Bake for 55-65 minutes, until the edges are set but the center still jiggles slightly when gently shaken.
Remove the flan from the water bath and let cool to room temperature on a wire rack, about 1 hour. Cover with plastic wrap and refrigerate for at least 6 hours or overnight.
To unmold, run a thin knife around the edge of the flan. Place a rimmed serving plate over the pan, hold firmly, and quickly invert. Lift the pan slowly, allowing the caramel to drizzle over the custard. Slice and serve chilled with the pooled caramel sauce.