I know this is a really old forum post and I do apologize for bringing it to life again, but do you remember how you fixed it?
(or did you just remove/update the faulty user?)
I think we removed the faulty user (or removed subscriptions for that user), but I'm not sure. All I remember is that I created a plugin for listing and managing subscribers and that might be because the log gave information about which user failed, so using the plugin the admin could find the malfunctioning user and correct. But that's half-guess, I could have created the plugin for a different reason.
A customer has reported a problem with the subscription job. When one of their local mail users expires, and that user is one of the reciptients in the subscription job, the job stops. It is unable to recover from this state since the recipient does not seem to be marked as processed (it will stop in the same place again the next run).
I looked at the code using reflector and it seems that exceptions from the SmtpClient.Send method in SubscriptionJob.Send are forwarded all the way to the Execute method of the scheduled job without any other treatment than being logged. I suppose that the local mail gateway (not using localhost relay) causes SmtpClient to throw a SmtpFailedRecipientException for the unavailable mailboxes since it knows immediately that they are unavailable. Should this be considered a bug in EPiServer? I can of course override the SubscriptionJob.Send method and handle the exception.