How long does it take for a transaction with 0 fees to be confirmed or rejected? I have a problem with a transaction that has 0 btc fees:
https://blockchain.info/tx/256301465d77affb6bc7087432a9130db48dd64efa28b0460fb674eda704f382

From what I understand, eventually this transaction will either be confirmed or rejected. My question is: how long will this take, and is there anything I can do to speed up this process?

(There is an interesting answer to this question here What happens if my transaction is not accepted because I did not pay fees? but it's two years old and assumes that one is running the official bitcoin client, which I'm not)
The time it takes for a fee-less transaction to be confirmed can vary vastly. While sometimes you're lucky enough to have it confirmed within the next block (as if you had paid the standard fee), other times it may take days.

This depends on the current transaction volume and miners' level of altruism. Most notably though, it depends on the number of Bitcoin Days Destroyed. Older coins (coming from older transactions) are conventionally assigned higher priority, and thus will generally be included in a block sooner.

As your transaction is pending (unconfirmed), the coins it is spending are getting older and older every day, so the chance of finally getting confirmed is slightly increasing overtime. This should prevent your coins from becoming completely unaccessible, stuck in the void.

No transaction can be rejected though, there's just no such thing in the protocol.

Finally, if this happens to you and you're not willing to spend some arbitrary time in uncertainty waiting for the confirmation, you can perhaps try to create a double spend transaction with higher fees, hoping it would be picked up by a non-standard (though pragmatic) miner.