Данные о нажатии хранятся в БД. Если у пользователя нет данных о том, что он в ближайшие 24 часа нажимал на кнопку, то отображаем кнопку. Если он уже нажимал, то отображаем таймер.
При нажатии на кнопку происходит добавления данных в БД о том, что пользователь (надеюсь вы их авторизуете) нажал кнопку в это время (timestamp, к примеру). И потом просто отсчитываете сколько от этого времени прошло.
И ни какой ребилд, рестарт и т.п. не страшен. Главное что бы БД была в порядке.