There are a number of options you can use here. The simplest construction you could use is the present progressive (present tense and progressive aspect):
I am reading it now; I will be finished soon.
In your example, this would give:
From now until Monday, this diner is having a 2-for-1 sale on hoagies.
This works just fine. Your suggestion uses instead the future progressive (future tense, progressive aspect), which also works fine.
You'll recognize me because I will be wearing this green shirt.
From now until Monday, this diner will be having a 2-for-1 sale.
This is idiomatic (at least in American English) as well, even when the action has already begun--"I'll be waiting" is a common expression, and doesn't imply that you haven't started waiting yet.
The phrase you asked about is in the simple future (future tense, simple aspect). This is a common idiomatic replacement for the future progressive in situations like this one, usually involving the verb "to be." A comedian who gets a laugh on Tuesday night might say:
Thank you; I'll be here all week.
This sounds at first like a progressive aspect, because of "to be," but in this case "be" is the verb, not "here." You can think of this as an elision of:
Thank you; I will be being here all week.
which is something no native speaker would ever say. On the other hand, it would be perfectly correct (if a little stilted) to say:
Thank you; I will be performing here all week.
and you would rarely if ever hear a native speaker say:
*Thank you; I will perform here all week.