I build a grace-period into the warrant canary that I publish by a very simple method: I issue each canary early. Each canary has a stated expiration date that is either the 15th or the last of the month (the lazy man's bimonthly), but the scheduled reminder to update it goes out the 13th and third-to-last day. Usually I take care of it immediately, so a new canary is issued e.g. the 13th that expires the 31st.
So, I essentially have a built-in grace period of two days before the canary expires, and users know that a canary issued on the 13th or 14th is also fine. I really don't see any downside to this method except for the fact that it extends the effective interval between canaries up to two days (the same as a two-day grace period would, but with less reduction in confidence). And in my application that interval varies based on the length of the month anyway, so you can see that I'm not particularly concerned about the length of the interval so long as there is a clearly defined date after which users should worry.
So, I essentially have a built-in grace period of two days before the canary expires, and users know that a canary issued on the 13th or 14th is also fine. I really don't see any downside to this method except for the fact that it extends the effective interval between canaries up to two days (the same as a two-day grace period would, but with less reduction in confidence). And in my application that interval varies based on the length of the month anyway, so you can see that I'm not particularly concerned about the length of the interval so long as there is a clearly defined date after which users should worry.