In POW a double spender must wait until a merchant accepts his initial payment (at 1 confirmation, say), and then outpace the network to produce a longer fork and the cost is linear in the number of blocks.
Is a way to increase this cost somehow, to make it quadratic, or higher order in the number of blocks?
The cost isn't really linear.
As Satoshi says, the chances of catching up becoming "vanishingly small", therefore the cost becomes exponentially large.
It would have to be very expensive coffee for the attacker to do such a thing as they would make a lot more money just by submitting the blocks for the block reward. So in that sense it is quite expensive. and also each block that is mined makes reorging exponentially more expensive as jonald_fyookball states.
The idea of making a double spend more expensive is interesting though. However, since there wont be consensus on all nodes as to whether there even was a double spend (we are talking about the chain reorging here), then I dont see how you can make double spending a specific input require more PoW in a way to achieve global consensus.
Unless...
If there was a separately maintained consensus of all 1 conf transactions (I think it can be proven this cant be done with 0confs), then we would have a global consensus on any attempt to double spend any outputs from this 1 conf list. So theoretically it would be possible to make the weight of any new chain that is attempting to double spend any output from the 1 conf list to be arbitrarily lower.
Just need to maintain a tree of such 1 conf txlists, and each reorg would spawn some sort of alternate 1 conf list. I think it is quite a lot of work, but probably not impossible to do. However, considering this is a hardfork and orders of magnitude more difficult than fixing malleability, it is unlikely that it will ever be done.
James