Make the batter: In a large bowl, whisk together potato starch, all-purpose flour, baking powder, salt, and garlic powder. Slowly whisk in the cold water to form a thin batter. It should be thinner than the consistency of pancake batter, and only lightly coat the back of a spoon. Whisk in extra water as needed to adjust the consistency.
Preheat the oil: Pour the frying oil into a heavy pan and begin heating it to 375°F. I highly recommend monitoring with a fry thermometer for the best texture.
Set up holding area: Prepare a large baking sheet with a wire rack where you can place the cauliflower once fried. (A paper towel lined baking sheet will also work but it will trap more moisture, which can make the cauliflower less crisp.) Preheat the oven to 200°F if you want to keep the cauliflower extra hot and crispy till ready to serve.
Batter and fry cauliflower: Dump all the cauliflower florets into the batter and toss gently to coat. Working in batches, transfer cauliflower into the hot oil (making sure to let excess batter drip off first). Fry until golden and crisp, about 6-8 minutes per batch. Avoid over-crowding the pot to help the oil maintain its temperature.
Drain and season: When the cauliflower is crisp, use tongs or a stainless spider to transfer the cauliflower to the prepared wire rack. Season immediately with extra salt if you like. You can keep the tray of cooked cauliflower in the 200°F oven while you fry the rest of the batches.
Serve: Fried cauliflower can be served as-is, or tossed with sauce while still hot. If you want to keep it as crisp as possible, I recommend serving with sauce on the side. The batter can lose some of its crunch if it sits in the sauce for a long time.