I like your calculations but it assumes that miners' profit is proportional to their hash rate. This is only true for cloud mining, and that type of mining doesn't allow you to generate your own block headers. Normal mining has an unpredictable block generation time that is entirely based on luck. This implies their block rewards are also gained at irregular intervals and it's impossible for attackers to make fake blocks when cloud mining because they cannot include their own transactions in some other company's mining operation.
What is necessary is a calculation involving mining farms (not pools that distribute the rewards to multiple people). Your calculation is good up to this point:
7 * 6.25 BTC = 43.75 BTC
43.75 BTC * ($11,400 / 1 BTC) = $498,750
Furthermore, the attacker needs to achieve 10% of the mining power. With a current total hash rate of 120 EH/s, this would mean 12 EH/s. There are two options: buying the hardware or renting the mining power from others. A new Antminer S9 with 14 TH/s can be bought for $3,000.(
https://www.buybitcoinworldwide.com/mining/hardware/) This would mean an attacker has to pay $2,568,000,000 to buy so many of these miners to reach 12 EH/s. The costs for electricity, storage room and cooling still needs to be added.
~
The first value is how much
BTC they're wasting by mining fake blocks, so attackers won't be interested in stealing any value lower than this (for they could solo mine and legitimately gain the quoted amount). We need to think of the feasibility of mining fake blocks in terms of how many miners can be bought. I'm no authority on mining though so maybe an knowledgeable person in that field can weigh in on this. What I do know is that it's possible to buy mining farms stashed with miners much cheaper than this, those will give you a few dozen PH/s of hash power.
By the way, about your Antminer S9 link: It seems that buybitcoinworldwide vastly overpriced the S9, you can buy ones directly from Bitmain for less than $100. It's infeasible for someone to get 12 EH/14 TH = a little under 1,000,000 S9 miners because there aren't that many in stock. The new Antminer S19 Pro does around 110 TH/s, so would require only 100,000 of them, and sells for $2400 on Bitmain, but they keep selling out and even if you supplement them with miners from resellers you still aren't going to reach enough miners to muster 12 EH/s. And, the total hashrate goes up whenever miners with bigger hashrates are made. So an attacker will never be able to catch up and get enough miners, and the malicious miner problem will remain theoretical.
No one group ever managed to get a 51% hash rate except for Ghash.io in July 2014, that that was when the global hashrate was around 120 PH/s so that means Ghash had 60 PH/s most likely as a result of having scores of Antminers (which back then performed between hundreds of GH/s, and a few TH/s). Miners stopped mining at their pool in protest, and Ghash even got DDoS'ed because people were afraid they would carry out a 51% attack, and Ghash slowly faded to non-existence.
https://en.wikipedia.org/wiki/Ghash.ioSo you can safely assume this is what's going to happen to anyone who has the potential to broadcast fake blocks to the majority.
Nevertheless, a calculation of maximum
BTC safe with x confirmations must involve estimating the rewards the miners make. So for the reward you'd need to use some kind of function that randomly gives off a 0 (for missed block) or 1 (for hit block), multiply that by block reward and an average of transaction fees, and sum them all up. Again, I'm not a mining expert so I'd like to hear if there are any existing functions for estimating block rewards.
I think the the number of finality headers * block reward (your 7 * 6.25 BTC = 43.75 BTC above) is all you need for the whole calculation. As the number of confirmations increases, the amount of
BTC that's safe to transfer increases by the block reward amount. It doesn't take earned tx fees into account, though fees are big enough to warrant adding the block reward to an average tx fee per block, but it's simple enough.