tl;dr: Running git status --ignored in the root of my project never finishes. git status works fine.
I started seeing the symptoms of this issue from my IDE - PhpStorm (though this issue would apply to all IntelliJ IDEs). No git-related operations (commit, push, fetch) work, all of them would hang endlessly. Looking at the running processes, turns out there was a git process taking 100% CPU.
Killing the git processes made the IDE run smoothly again for a couple of minutes. Seems like it periodically spawns the process to sync up changes. Some experimenting later, turns out this is not an issue of PhpStorm, but of git. git status --ignored never finishes even when executed from the command line.