The issue is quite difficult to tackle. The main difference between filesystem sync and other types of sync is that with the latter, you've got a single source that is used by all devices, and the whole synchronisation mechanism is built around it. In the case of filesystem sync, there is no single source, but rather the filesystem sync path on each device acts as its own source. When there is just a single source, Joplin can assume that its state is always complete. However, with filesystem sync, there is no such guarantee, and this eventually leads to the issue at hand.
I'm sure someone with enough coding skills could come up with a solution to the problem, but no-one has done it so far
. For the record, I've been using the PowerShell workaround mentioned on GitHub for a very long time now, and it does "fix" the problem, even though in a hacky way.