So the calculation of adding a dollar for each successive toss is fair. The problem is, as usual, with this thing called infinity. In practice it is not possible to play the infinite version of the game in finite time.
The paradox is due to our faulty understanding of infinity. The best definition I have heard of infinity is, "a quantity larger than any number you care to name". If we adopt this definition then the wager makes sense: we pay "a number larger than any you care to name" and we may win "a number larger than any you care to name". In other words, both the fee to play the game and the possible pay-off are without limit. We should not see infinity as being a specific value - it is not a number like 10 or a million.