I am not going to discuss how much coverage is enough. I want to point out one of the risks of going for 100% coverage.
To achieve 100% coverage, all interfaces have to be mocked out. Now if we change the code a test will capture problems, but if an interface changes our tests will pass as usual. There is a disconnect between the mock and real interfaces. Address this and the testing and coverage will be more stable. not an easy thing to do. If the interface is to a database the mock could work with a local copy of production data. The copy process will fail if the production data format or dependencies change.