Can I close an index while it is being reallocated to a "cold" node? Or, do I have to wait till the re-allocation is complete?
When you close an index elasticsearch cancels any relocations and stops keeping track of this index shards. It doesn't delete these shards as in case of deleting an index, but it doesn't care about their allocation or their number either. So, I suspect that all shards that didn't fully relocate to the "cold" node will remain on the "hot" node.
Please, also consider that since elasticsearch doesn't keep track of a number of available shards for closed indices, it will not try to create additional copies if some copies are lost. To give you an example, if you have an index with 1 replica, you close this index and then lose a node that contains the closed shards, elasticsearch will not try to create another copy as it does in case of an open index, so now you have only one copy of this index, if you lose a node with this only copy - you will lose the data for this index. So, if your purpose is data preservation, it might make more sense to take a look at snapshot/restore framework as a solution for moving indices out of active cluster. If you are keeping closed indices around "just in case" or you have a copy somewhere, it's fine to close indices to reduce their footprint.