Here is what we got (your image will be unavailable soon)
v-------<<--VPN2---------------v
[CLI1]---[SRV1]---{Internet}---[SRV2]---[CLI2]
^------------VPN1->>-----------^
What you are doing when establishing the second VPN is setting a second route for the same link CLI1 to CLI2. So when CLI2 try to reach CLI1 using VPN2, CLI1 use VPN1 to reach back to CLI2. So I am quite sure you got some NAT or MASQUERADE on the way that do not allow TCP to establish.
once your first VPN is established you should use this one for a way back, so CLI2 will reach CLI1 using a route that CLI1 already knows and it will works. basically you may NOT establish VPN2, but give route back to your CLI1 at your openvpn at SVR2
Another (better,simpler) way to do the same will be to establish a VPN between SRV1 ans SRV2 and instruct both of the route of the other so the ensemble will be seen as a simple route between two LAN that every client in both side will use to connect to any other client on the other side of the VPN.
[CLI1]---[SRV1]---{Internet}---[SRV2]---[CLI2]
^-------VPN1->>-------^
Keep in mind that openVPN is two things, 1/ an interface manager with crypto between local and distant interfaces, 2/ a router inside a machine that usually act as a router. So you have to give route to your SRV1 and SRV2 and give route to your openVPN process => look at iroute
and client-config-dir
options in openVPN;
[CLI1]---[SRV1]---{Internet}---[SRV2]---[CLI2]
^ ^
RouteToLAN2 RouteBackToLAN1
^-------VPN1->>-------^