I haven't tested the issue outside my project. But while debugging, I saw the new hash in the user instance returned by authenticate(), but that new hash never went to the database since I haven't done a 'save()' of the user instance.
If you see the new hash in the database, I think that, maybe the admin, is saving the user instance with the new hash. And doing that, ie: save()'ing the user returned by authenticate() solved the issue for me too (but I don't want to save the user every time he/she logins, just in case the hasher parameters changed).