fix launching new connections during maintenance

match up waiting connections with tested/used until we run out.
launches new connection if there are more waiting than could be
fulfilled by refreshing current connections. this situation can
happen if you have high churn on client connections (i.e. with
transaction pooling), such that there is *always* at least one
connection in sv_tested or sv_used.