How about keeping sfDoctrineGuard as it is, using the existing username field, but saving emails into it. Your users would then login with their emails. The default field length is VARCHAR(128) which is plenty for any email. If I remember right, the only thing you'd need to tweak is the form label for sfguard signup, signin, etc (wherever you display it). You'd basically just say "Enter email here" instead of saying "Enter username here".
The only downside is that you lose the "username", but you could always put that in a separate profile that's related to sfGuardUser.
If you don't like that approach, you can always tweak the sfDoctrineGuardPlugin code directly, but it's probably going to cause some headache.