Reduce awakening of UserReport thread

The previous implementation did not check in advance if awakening the
UserReport thread is needed. The thread often was awoken just to be sent
back to sleep again.