Figured it out. To help others:
There seems to be an issue if you use both Eclipse and the msys terminal at the same time. This could be also caused by the virus scanner, so I haven't looked into the exact cause, but here is what I had to do:
1. Disable your real-time filesystem virus shield (temporarily, say 10 minutes). I use Avast, I simply had to right-click on the system tray icon -> Shields control -> Disable for 10 min.
2. If you use Eclipse, disable "Build Automatically" from the Project menu.
3. Project -> Clean. Uncheck the box for "Build automatically"
4. Open the msys terminal and navigate to your project folder.
5. "make app" and "make app-flash" should work now. You may see multiple "C:\msys32\opt\xtensa-esp32-elf\bin\xtensa-esp32-elf-ar.exe: unable to rename 'xxxxxxx.a'; reason: File exists" errors, but keep running "make app" and eventually one of them will go through... Sometimes just 1 re-run, sometimes 10. Not sure why that happens.
6. Re-enable your virus scanner.
I no longer build in Eclipse -- I just use it to code and do the building / flashing in terminal. Not sure why that is happening.