Suppose I write a code-golf question. How long should I wait before accepting the shortest answer? One week? Two days? More? I checked the FAQ, but couldn't find any information on this topic. Is there a general rule or is it just when the question asker feels like it?
The way I run my own golfing challenges is to accept the shortest one at any given time (and reassign the accepted answer should a better one come in). Yes, it's more work because you have to monitor for new answers, but I think that's the best way to encourage people to keep finding better solutions.
It's best to wait a week before accepting for the first time, though.
In addition to the accepted answer, I'd like to bring up another point: you don't necessarily have to accept an answer to a challenge at all. If you want to promote competition within individual languages, which is normally considered a good thing (so that the use of golfing languages doesn't drive away people who would prefer to answer in something more widely used), placing an accepted answer checkmark can discourage people because it looks like their languages are being passed over in favour of the ones which are more suited to the challenge. So you should at least consider just leaving no answers as accepted.
In a few special cases, notably answer-chaining (and to a lesser extent popularity-contest), the sort order of the answers is relevant, and placing an accepted answer checkmark will disturb it. So I'd be much stronger in these cases, and say that in questions where the sort order matters, you should not place the checkmark (as opposed to other questions, where you should merely just consider not placing it).