Сразу вспоминается фраза из фильма какого-то фильма: - "Китайское кунг-фу - круто".
Берете список участников группы через апи, сортируете по текущей дате, выводите в цикле по шаблону поздравлялки. Скрипт пускаете по крону каждый день...
Для правильного вопроса надо знать половину ответа
В виде журнала транзакций (приход/расход) отдельной таблицей и дополнительного поля "баланс" в основной таблице. Дополнительное поле менять триггером AFTER INSERT из таблицы транзакций.
Периодические списания выполнять отдельным скриптом, запускаемым из cron.
Если запрос до нгинкса не дошёл, то и в логах никаких ошибок не будет. Показателем, что нгинкс не справляется будет увеличение времени ответа и 503 ошибки.
Недовольных пользователей лучше диагностировать, хотя бы поняв, что у них за ОС/браузер.
На чистом PHP невозможно. Только отправить.
Сам прием надо делать на HTML service workers. При этом для сафари например надо будет пилить свои пуши через сертификат разработчика.
Так что советую лучше не мучиться, а например выбрать универсальный сервис - PushAll. Т.к. например уведомления на мобильные устройства через браузер полноценно не сделать.
считай до даты.
если нужно определенное кол-во времени после первого открытия, то писать текущее значение (либо момент начала\конца отсчета) в cookie, storage, как уже подсказали выше