I don't understand why you are focused on what returning 0 could possibly mean in others situations
I mention it because it is important for consistency. It would make no sense for a value to have different meanings in the same context. So, I can confirm that this is not a bug and is simply the way .secs was implemented. It is not meant to indicate that a timer has finished and will always indicate the delay value regardless of whether the timer has ended or not. Thanks for your comments everyone.