Ваше решение пишется довольно быстро, все что вам нужно:
1. создаете массив сообщений.
2. через setInterval (хотя скорее setTimeout, потоум что вам не нужно показывать больше одного сообщения), вы выводите сообщение по его порядковому номеру в массиве.
3. если человек закрыл сообщение, в куки записываете ему номер закрытого сообщения из массива (например, 2).
4. в начале фукнции вы как раз проверяете наличие кукисов. если есть выводим n+ 1 сообщение, если нет, то 1 сообщение.
Вот в общем-то весь ваш алгоритм.