In your script you get the status of the nodes once, then you go into your infinite loop. So the status of your nodes never change, and that's why you don't get a notification email in senario 1. Then with senario 2 is says the node 1 is offline and then it never updates the status of it, so that's why you keep getting emails. What you want to do is keep getting the status of your nodes. So you might want to do something like this:
do {
$nodeStatus = Get-NlbClusterNode -hostname "computer1"
$status = $nodeStatus[0].State.ToString()
$status1 = $nodeStatus[1].State.ToString()
$flag = 1
# do your normal stuff ...
}
while ($response -eq "Y")