If you only cancel the profit, people can just keep playing with the bonus. Site would be bankrupt in a day.
If that was so I would deposit 1btc, take the reload bonus so I have 1.5 btc. Make 5 bets of 0.1 on 100x. If I don't hit, I withdraw and deposit again and start over. Best way is just to remove the cancel button. People just don't read.
The problem here is not Duckdice but just an user that don't read well.
There should be no reason to cancel the entire balance. You're essentially - without the user's prior knowledge - forcing them to go all or nothing on the bonuses. And considering the fact that you have to have the entire bankroll bet 110x, it's a difficult feat.
If you want to punish users by losing part of the bonus balance, then do a simple split based on the bonus %.
In your scenario of 1 BTC and 0.5 BTC bonus, have every wager split 2:1 in terms of deposit and bonus, disregarding any profit upon cancellation.
Note that also, your reload bonus is claimed a maximum of twice a day.
And really, the only reason you make each bet count for 50% of the wagering requirement is to make the actual wager number (110x) look smaller: 55x.
110x isn't even that hard. It must be over 100x due the house edge. Everything below the 100x would allow users just to wager and loose the hotels edge and still end up with profit without any risk.