In the GroupLayer case, it is scanning its children to see which of them is "hit" by a point. So if one of the children has a non-invertible matrix, there might still be other children that are actually hit by the point, so it makes sense to ignore the weird child and move on.
In the case of Interaction, we have already decided that some Layer is the "hit" layer, and now we're just translating the pointer coordinates into the coordinates of the Layer before processing the interaction handler. If that process somehow fails due to a non-invertible matrix, we cannot translate the coordinates and have nothing to supply to the interaction handler for those values.
I would not want to provide bogus values to the interaction handler because it should be able to trust that if it is given coordinates, they are valid. So instead an exception is thrown, which is caught by Platform.dispatchEvent and logged, and the interaction is effectively dropped. We could drop the interaction "silently" instead by catching NonInvertibleTransformException in Interaction.dispatch and then just returning without processing the interaction, but we would not be improving things. We'd just be hiding an error from the developer. The game doesn't "crash" in either case, the pointer event is simply ignored. But at least with the logged exception you know something is going wrong and can try to fix it.
The most common case for non-invertible matrices is if one or the other of a layer's scale components is 0. So you can check to see if that can happen in your code.