Preheat oven to 350°F. Line 9×5-inch metal loaf pan with parchment paper, along paper overhang to extend along the two long sides. Generously grease lined pan with butter. Set aside.
In the bowl of a stand mixer fitted with a paddle attachment (or using an electric hand mixer), cream butter and sugar on medium speed until smooth and slightly pale, about 3 minutes.
Mixing on low speed, add eggs one at a time until thoroughly incorporated. Scrape down sides of bowl as needed to ensure thorough mixing.
In a medium bowl, whisk together flour, baking powder, and salt. On low speed, add dry mixture to wet batter in three additions, alternating with coconut milk. Mix until just combined and there are no longer any dry streaks of flour.
Remove 250 grams of batter from mixing bowl (about 1/3 of batter). Stir in vanilla extract. Set aside.
Add ube halaya and ube extract to mixing bowl. Briefly mix on medium speed (about 30 seconds) until well combined.
Alternate adding dollops of vanilla batter and ube batter into the prepared loaf pan. When finished, use a mini offset (chopstick or knife) to gently swirl together plain and ube batter.
Bang bottom of the filled loaf pan against the counter to ensure there are no air pockets between the two batters. Bake for 45-55 minutes until toothpick inserted in center of cake comes out clean.
Cool in pan for 10 minutes. Then, unmold loaf and continue to cool to room temperature on wire rack. Slice room temperature cake with serrated knife.