The tls::initlib proc does a whole song and dance to copy some non-existing dlls out of the package directory in case it's wrapped. This has the following issues:
I'm not a windows user myself, but I have distributed starpacks for windows with tls that didn't include any openssl dlls for years. I have never received any reports from users that they got errors when using tls. So it seems these magical dlls it is trying to copy out are not even necessary, at least not for normal use.
So I suggest to simplify tls::initlib to:
:::tcl
proc tls::initlib {dir dll} {
    set res [catch {uplevel #0 [list load [file join $dir $dll]]} err]
    if {$res} {
        namespace eval [namespace parent] {namespace delete tls}
        return -code $res $err
    }
    rename tls::initlib {}
}