Today, I was noticing frustratingly long delays using tramp with project.el for project-find-file.
I was almost entirely convinced that the problem was coming from the error on my screen, which wouldn't go away for a somewhat long period of time before I was able to search.
My initial instinct was to go debugging, and that revealed to me where the error was coming from. After instrumenting the function producing the error, I realized that it was not the issue.
I then whipped out emacs' built-in profiler, profiler-start, profiler-stop, and profiler-report. It very quickly led me to realize that my issues were coming from project.el's lack of caching, on top of the overhead of tramp.
I've had this happen before, but it's always astonishing how awry our instincts may be.