When damage is larger than 0, it means it has already initiated. When the damage reaches 1, it means the material has totally failed and cannot carry any load. The reason it only reaches 0.99999 but not 1 should be a numerical consideration, because completely changing the material stiffness to 0 (or in other words, make damage = 1) will make the matrix unsolvable. For example, for the following damage model, the damaged compliance matrix has a (1-d) in the denominator, so if the damage is 1, the denominator will be 0 and make the matrix unsolvable.
Could it be possible that your Hashin matrix tension failure index is a different output than the damage variable? I am not familiar with this material model, but it is always a good idea to check with the manual and each output's meaning.