As mentioned in the docs here the issue is explained:
MultiSubnetFailover=True Not Supported by NET Framework 3.5 or OLEDB
Issue: If your Availability Group or Failover Cluster Instance has a
listener name (known as the network name or Client Access Point in the
WSFC Cluster Manager) depending on multiple IP addresses from
different subnets, and you are using either ADO.NET with .NET
Framework 3.5SP1 or SQL Native Client 11.0 OLEDB, potentially 50% of
your client-connection requests to the availability group listener
will hit a connection timeout.
And there are two main workarounds:
Workarounds: We recommend that you do one of the following tasks.
If do not have the permission to manipulate cluster resources, change
your connection timeout to 30 seconds (this value results in a
20-second TCP timeout period plus a 10-second buffer).
Pros: If a cross-subnet failover occurs, client recovery time is
short.
Cons: Half of the client connections will take more than 20 seconds
If you have the permission to manipulate cluster resources, the more
recommended approach is to set the network name of your availability
group listener to RegisterAllProvidersIP=0. For more information, see
"RegisterAllProvidersIP Setting" later in this section.
Pros: You do not need to increase your client-connection timeout
value.
Cons: If a cross-subnet failover occurs, the client recovery time
could be 15 minutes or longer, depending on your HostRecordTTL setting
and the setting of your cross-site DNS/AD replication schedule.
In my opinion half of the connections taking more than 20 seconds is far from ideal and I would look into changing the RegisterAllProvidersIP
to 0 and HostRecordTTL
settings according to your needs. Know that lowering this value too much will increase DNS lookup requests. You could also look into monitoring failovers here would help with connection issues after failover.