I'd go for a "belt and braces" approach: Messages via Twitter, the EF app and the EF Prime ticker as well as a printed notice outside the affected room(s), preferably no later than the original scheduled start time if known about in advance.
One thing not to do, however, is to "slip" a time unless it's absolutely necessary. If you tell people, "Whittling for Beginners will start one hour late", they'll grumble, but it gives them a chance to get something to eat/drink or do something else. If you tell them "Whittling for Beginners will start fifteen minutes late", "Sorry. It's delayed by another 15 minutes", "Nope...Another 15 minutes", "Sorry...It'll be another 15 minutes", you'll have a queue full of angry people even though the delay's the same.
On the flip side, if you say "Whittling for Beginners will start half an hour late", but it subsequently proves to be possible to start earlier, stick with the original delay, otherwise you'll annoy people.
tl;dr There is no way to win if an event is delayed