I think using FindWindow is the wrong way to prevent multiple instances. Opening many instances simultaneously will succeed but it should fail. Using a Mutex with some unique name or GUID is a more correct method. It can be improved in the future by bringing the existing window to the foreground (unhide if necessary) if one already exists rather than ShowLocalizedMsg.
Also, the Exit OpenVPN windows should be MB_SETFOREGROUND, so they are not hidden when they pop up.
diff proposal