Refactored the code so that it impossible to call onSocketNeverConnect twice within the  launch closure, this is a more solid way to do things rather than try to figure out every edge cases.