Ho trovato la soluzione da solo mentre analizzavo il protocollo TLS. Si scopre che il client che non funziona nell'esempio sopra sta inviando il certificato del mio client durante l'handshake; e il cliente che funziona non lo fa. Apparentemente la crittografia è comunque stabilita (non ho continuato nel protocollo TLS) e probabilmente uno scambio di certificati/chiavi avviene più avanti.
Per far funzionare la connessione, tutto ciò che dovevo fare era cambiare la connectionstring e rimuovere tutte le chiavi Certificate*=. In particolare "Certificate Store Location=CurrentUser". La mia stringa di connessione SSL MySql corrente e funzionante è:
server=xxx.yyy.zzz.uuu;database=whopper;user=Username;password=Secret;Pooling=false;SSL Mode=Required;Keepalive=60
Inoltre, come nota a margine, mentre analizzavo la comunicazione, ho scoperto che Tamos CommView fa un lavoro migliore di WireShark nell'intercettare e dissezionare durante le comunicazioni VPN. Forse a causa dell'impossibilità di WinPCap di sezionare i pacchetti VPN in Windows 7 x64. Anche il dissettore TLS in CommView è ciò che mi ha davvero aiutato a trovare il problema dell'handshaking.
Inoltre, come seconda nota a margine. Tutte le comunicazioni SSL/TLS in Windows sono gestite da una DLL denominata schannel.dll. L'accesso completo al registro eventi di sistema per quella dll può essere abilitato creando la DWORD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\EventLogging con il valore 7. Leggi di più qui:http://support.microsoft.com/kb/260729 .
Per farlo funzionare. Rimuovi le cose.