Give this a go, instead of setting something to read you the message you want, why not just write to a txt then call from there?
Let me know how this suits.

Code:
on *:TEXT:!offline on:#: {
  if ($nick isop #) {
    unset %offline. $+ $chan    
    msg $chan Offline mode Activated. 
  }
}

on *:TEXT:!setoffline*:#: {
  write -c OFFLINEMSG.txt 
  write OFFLINEMSG.txt $2-
  msg # Offline Message set to: $2-
}

on *:TEXT:!offline off:#: { 
  if ($nick isop #) {
    set %offline. $+ $chan On    
    msg $chan Offline mode deactivated.
  }
}


on !*:join:#: {
  if ($($+(%,offline.,$chan),2)) { OffLine $chan}
    if ($($+(!%,offline.,$chan),2)) { return }
  }


  alias OffLine {
    if ((%floodhell_*) || ($($+(%,floodhell_*.,$nick),2))) { return }
    set -u30 %floodhell_* On
    set -u3600 %floodhell_*. $+ $nick 
    msg $chan $read(OFFLINEMSG.txt,1) 
  }


  on 1:OPEN:/msg # %offline. $+ $chan On

Note: This is just a slightly modified script I made for someone else a while ago.