Update documentation in shard.c

More clearly explain the formulat for shard being and end
Fix bug where cooldown period was not respected

Race condition between zsend.complete and zsend.finish.
Make sure that zsend.finish is always set before zsend.complete