Just stopped a git status call that was stuck for hours on the following line:
refresh index: 13% (30610/235456)
That problem suddenly occurred this weekend after I git annex added some files. I haven't called status or anything before, but last time I used that drive it worked well.
Other commands like git commit also just don't do anything and can't overcome a S+ state. Problem happens on both macOS and Linux hosts. Nothing in the kernel log that indicates drive IO problems or something similar.
Any idea what might lead to this?

gdbsee where it hangs. Could very well be something with the git-annex smudge/clean filters.If it gets fully stuck and the number is not increasing at all, I'd second the suggestion to gdb, or run git with
GIT_TRACE=1 GIT_TRACE_PACKET=1If it's increasingly but slowly, it might be that you have an older version of git-annex, or a repository using git-annex format v8. That makes git have to run git-annex once per file it needs to update the status of. (Why git needs to update the status of so many files I don't know, but there are certianly situations where it could.) Upgrading to git-annex v10 lets git run git-annex only once, so will be a lot faster.