Old shards not deleted upon relocation

The missing directory /storage/disk0/elasticsearch/cluster_name/nodes/0/indices/index_name/_state indicates that the shard failed to be fully allocated to the node in an earlier recovery attempt. When allocating a shard, ES uses the directory which has already shard data. This directory is identified by the _state file (which is missing in this case due to the unfinished recovery attempt). In your case, the node picked the other data directory to allocate the shard because it could not see the existing shard. The stale shard data was also not cleaned up as ES only deletes shard directories if the shard is not allocated to the current node.
The first issue will not occur on ES v5.x as the recovery process has been changed in that regard. I think there is no easy fix here except to manually delete the directories.