ignoreDupResponses does not make sense without queue defined (attribute eventsQueue). Also, there is no reason to send so many events to the server when user types. So, having requestDelay (300-800ms) is a right way to go.
ajaxSingle="true" helps you do not send more data to server, however, the whole component tree still will be processed. You can avoid this using a4j:region just around the h:inputTextarea.
Thx for a quick and informative reply!