...
The reason I'm not fond of the delay idea is that you run into user-expectation management issues that require you to tell the whole world how your human-detector works. I mean, you're going to have to tell your user why it is that you're not going to let him submit his message to you now, and that you will allow him to submit shortly.
And spamming is not all worms and bots; there are human beings involved in the industry. And if one of them happens to hit your site by hand, try to submit a message to you and see the error "I'm sorry, but in order to thwart spammers, I've installed a 30-second delay before you can submit this form. You can resubmit in 11 seconds", then that spammer will get curious about how you did what you did. It will take less than 60 seconds to deduce how you did it, that others might try it, and how to work around it using only data that can be stored simply in a database.
And it can be circumvented easily. It does not require the interpretation of an image or the parsing of an English sentence.
...