Decides whether to trust a peer's certificate chain, instead of mbedTLS's own verification. chain
is the peer's certificates in DER, its own first; server_name is what the client asked for (empty
on the server). Returns "" to accept, or why the chain is rejected. It runs on the fiber that is
doing the handshake, after the handshake itself succeeded, and may wait.
Tls_Verify_Proc :: #type (chain: [][] u8, server_name: string, data: *void) -> string