Probably could do a custom event off of the publish event:
public override void Init()
{
WorkflowEvents.Publish.Before += PublishDocument;
}
private void PublishDocument(object sender, WorkflowEventArgs e)
{
var doc = e.Document;
switch (doc.ClassName.ToLower())
{
case "custom.document":
SendNotificationEmail();
break;
}
}