The issue is described in Bug 213424 (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=213424).
This patch is based on the one originally discussed in D8218.
The fix implemented here handles all of the necessary TFO-failure corrections to the pending counter in a single place in syncache_add().
The tfo_done label has been renamed to tfo_socket_created for clarity.