If the lib gets Nack for a message, it calls the onFail callback but doesn't remove the message from the queue, so later the onTimeout callback may be called too. Thus the onFail and onTimeout can be both called for one message.
@ppetrosh Is it a proper behavior?
I guess the lib should remove a message from the queue here.