I have personally never been a fan of expire time-based cooldowns. The reason being that in order to optimize your time on it, you have to keep track of when you last did it, and need to do it exactly at that moment. Therefore, you need to keep a schedule, and if for some reason, you're unable to follow that schedule, that's just a loss. If the cooldown is exactly 24 hours, you'll be adding minutes on top of it every day, until it falls on a time where you have to go to school, job or sleep, and lose many hours. If it's less and you always try to optimize, well you'll just arrive at a time where the first thing you have to do when arriving or waking up is to do your daily activities. It's really just bad, and it's the main reason why I personally stopped doing daily activities.
On a server-based cooldown, you are simply given a time frame of 24 hours, you can choose whenever you want to do it, and it won't affect the time where you'll be able to do it again. If I'm too busy in the morning one day, while I'm too busy in the afternoon the next day, I can still do it whenever I'm available on both days and not lose any time. If I'm busy the whole day, well I miss the day, and I would have missed it anyway with an expire time-based cooldown. But at least, I just need one hour somewhere, and it's all good.
The only problem I see would be that this uses the same server time for everyone. I've played in a japanese game that used server-based cooldowns, and since I live in the opposite side of the globe, the reset happened at around 4 o'clock in the afternoon, while it's supposed to happen in the middle of the night. It was still very enjoyable and not much of an issue. And if we really wanted, we could also allow a feature that allows the player to set their own reset time, although with a limitation to prevent abuse such as a 30 day cooldown on being able to change it again.