Resend after time out is automatic. You could write a proc to do something after too many resends. Maybe a poor connection or a vendor not implementing TCP/IP correctly so no FIN sent when he disconnects. It may also be that the time out is too short for the vendor to respond. Turn up EO and take a look.
Correct. To handle the reply only cl_check_ack required.