It might happens that the LogAggregationStatus is null. I've noticed it happens when there is a RM related failure. In the code we don't handle this case and we get a NullPointerException. This makes that the UI reports correctly the state of the application, but the duration keeps increasing forever.
Another scenario is when there is only a single job running. In this case log aggregation has to finish before the future is checked. Otherwise it will be stuck until another application is started.