There isn't a HasChanges event on the EntityManager, but you should be able to use the EntityChanged event for what you want. I'm surprised that you're seeing EntityAction.Change events raised when there aren't any actual changes - do you have more information on when you see this? You should, though, be careful in setting your HasChanges flag - right now you'll be setting it on and off more frequently than you want, since this event is raised for quite a few different actions.
Something similar to the following should work, so that you're not setting the flag off for other actions, and optionally also testing the EM for changes if you find that Change actions are fired erroneously. I should note that Add and Delete activities will fire both the Add/Delete action and the Change action, so checking only for Change should be sufficient.
entityManager.EntityChanged += (s, e) => {
if (this.HasChanges) return;
this.HasChanges = e.Action == EntityAction.Change && entityManager.HasChanges();
};