ISPN-4424 Synchronize updating cache entry and making a copy

Exploratory PR. Local tests and tests in Takayoshi's environment have been successful with this patch (the patch in `t_4424` failed in Takayoshi's environment).

The patch could be further improved by potentially separating GetCacheEntryCommand out of GetKeyValueCommand, in order to avoid the extra cost of 2 instance variables in GetCacheEntryCommand, and have better encapsulation of responsibilities.
It's a fair point, and I think it might work fine, but it'd need a round of testing, and I also would like to potentially separate GetKeyValueCommand into two commands, one for value only and one for cache entry. I'll create a JIRA to address this and your comment, how's that?