Give this a small test for me, let me know if this is what you were after. I changed the flood for the message to be at minimum every 30 seconds.

Code:
on *:TEXT:!away:#: {
  if ((%floodaway) || ($($+(%,floodaway.,$nick),2))) { return }
  set -u10 %floodaway On
  set -u30 %floodaway. $+ $nick 
  if ($nick isop #) {
    set %away.mode On    
    msg $chan Away mode activated, new users will be alerted that the streamer is away.
  }
  else { return }
}
on !*:join:#:{
  if (!%away.mode) return
  if ((%floodhello_*) || ($($+(%,floodhello_*.,$nick),2))) { return }
  set -u30 %floodhello_* On
  set -u3600 %floodhello_*. $+ $nick 
  msg $chan Hi $nick $+ , $remove(#,$chr(35)) is away, and will be back shortly. 
}

on *:TEXT:!awayoff:#: {
  if ((%floodawayoff) || ($($+(%,floodawayoff.,$nick),2))) { return }
  set -u10 %floodawayoff On
  set -u30 %floodawayoff. $+ $nick 
  if ($nick isop #) {
    unset %away.mode    
    msg $chan *STREAMER NAME* is back! Enjoy the show. :) 

  }
}