Given that the money lost can be avoided simply by disconnecting and that it's not punishable, it feels more like a punishment for playing the game fair or for forgetting to logout. And yeah, 5% loss becomes a huge lot after a while. If you got 100m, you lose more money than the majority of people ever had in their pocket.
I'm not much of a fan for a fixed cap, and still prefer seeing the penalty rise as you become more rich. As such, I'd suggest the following formula:
penalty = min((money * 0.05), (500 * (log money)²))
This will give the following results:
1,000 => 50 penalty
10,000 => 500 penalty
100,000 => 5,000 penalty
250,000 => 12,500 penalty
500,000 => 16,239 penalty
1,000,000 => 18,000 penalty
10,000,000 => 24,500 penalty
100,000,000 => 32,000 penalty
So until 300k, it will remain the 5% penalty we have, but after that, the penalty would increase significantly slower, staying in the couple tens of thousands range, but still always increasing.