I don't think it's safe to remove this call.

I'm not sure what you mean by "the eviction server isn't blocked" -- if an application thread is part way through a checkpoint, there is no guarantee that LRU eviction is also running.  But the eviction server could have walked past the checkpoint into the file, then gone to sleep because because it got the cache size under its target.  When the checkpoint reaches the current eviction point in the file, it will block indefinitely.