Avoid double delay in client from ReconnectTimeout

Run the snowflake collection ReconnectTimeout timer in parallel to the
negotiation with the broker. This way, if the broker takes a long time
to respond the client doesn't have to wait the full timeout to respond.
4 jobs for master in 5 minutes and 28 seconds (queued for 6 minutes and 27 seconds)
Status Job ID Name Coverage
  Test
failed #6674
android

00:01:07

failed #6677
debian-testing

00:03:16

failed #6675
go-1.13

00:00:34

failed #6676
go-1.14

00:00:29

 
Name Stage Failure
failed
debian-testing Test
# git.torproject.org/pluggable-transports/snowflake.git/client
client/snowflake.go:31:89: socksAcceptLoop passes lock by value: sync.WaitGroup contains sync.noCopy
client/snowflake.go:190:45: call of socksAcceptLoop copies lock value: sync.WaitGroup contains sync.noCopy
Running after_script
Running after script...
$ echo "Download debug artifacts from https://gitlab.com/${CI_PROJECT_PATH}/-/jobs"
Download debug artifacts from https://gitlab.com/tpo/anti-censorship/pluggable-transports/snowflake/-/jobs
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
go-1.14 Test
# git.torproject.org/pluggable-transports/snowflake.git/client
client/snowflake.go:31:89: socksAcceptLoop passes lock by value: sync.WaitGroup contains sync.noCopy
client/snowflake.go:190:45: call of socksAcceptLoop copies lock value: sync.WaitGroup contains sync.noCopy
Running after_script
Running after script...
$ echo "Download debug artifacts from https://gitlab.com/${CI_PROJECT_PATH}/-/jobs"
Download debug artifacts from https://gitlab.com/tpo/anti-censorship/pluggable-transports/snowflake/-/jobs
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
go-1.13 Test
# git.torproject.org/pluggable-transports/snowflake.git/client
client/snowflake.go:31:89: socksAcceptLoop passes lock by value: sync.WaitGroup contains sync.noCopy
client/snowflake.go:190:45: call of socksAcceptLoop copies lock value: sync.WaitGroup contains sync.noCopy
Running after_script
Running after script...
$ echo "Download debug artifacts from https://gitlab.com/${CI_PROJECT_PATH}/-/jobs"
Download debug artifacts from https://gitlab.com/tpo/anti-censorship/pluggable-transports/snowflake/-/jobs
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
android Test
# git.torproject.org/pluggable-transports/snowflake.git/client
client/snowflake.go:31:89: socksAcceptLoop passes lock by value: sync.WaitGroup contains sync.noCopy
client/snowflake.go:190:45: call of socksAcceptLoop copies lock value: sync.WaitGroup contains sync.noCopy
Running after_script
Running after script...
$ echo "Download debug artifacts from https://gitlab.com/${CI_PROJECT_PATH}/-/jobs"
Download debug artifacts from https://gitlab.com/tpo/anti-censorship/pluggable-transports/snowflake/-/jobs
Cleaning up file based variables
ERROR: Job failed: exit code 1