I see no real reasons to continue using any Windows app compiled with the legacy "ANSI" APIs of Win32.
Lua is compiled with the "ANSI part" of WinAPI,
and I do have real reasons to continue using Lua on Windows :-)
So I see no interest in your development, except to support Windows 95/98/XP
The problem is not specific to old OS.
Try to run latest Lua under latest Windows and you'll see that nothing has changed since Win95 :-)
Under Windows 10 you still have to provide filenames in ANSI encoding for "io.open".
And your very long post doesn't suggest any solution to this problem.
Except arrogant phrase "I see no real reasons to continue using any Windows app compiled with the legacy ANSI API" (obviously, this means "including Lua").