Answer
Isolate the custom attribute from the notification mechanism before debugging further — build a Quick Report using the same underlying expression but with a hardcoded key value in place of the dynamic reference; if the Quick Report returns the expected email address, the attribute definition is fine and the problem is in how it's being referenced from the notification, not the attribute itself.