After further investigation, it appears that
Cache::FastMmap (and consequently
Catalyst::Plugin::Cache::FastMmap) has a get_and_set function that handles the locking issues needed to avoid many race conditions. It allows the programmer to send a sub reference which receives the value of one of the cache items and change it, keeping it locked the whole time. While it isn't
quite as convenient as something like a "busy_lock" flag, it is more versatile and may even work better for my needs.