The specific problem is that perl cannot know which FMSLogo to invoke and "../fmslogo" might not exist or might exist but not be the FMSLogo under test.
The fix is to do what first-level Perl script did as an FMSLogo program, using DLLCALL to set the "TZ" environment variable. Because Windows always adds the directory containing executable's image to the PATH, FMSLogo can invoke itself by running "fmslogo", whereas perl cannot.