The Strike app just launched the ability to withdraw BTC to any address (and my phone got this update), so this makes it the cheapest way to buy BTC with KYC and stack in your hardware wallet.
From what I can tell Strike is now cheaper than Coinbase, River, Swan, etc., since each of those charge ~2% fee. Strike has no fee, only market spread, so in practice 0.2% for now.