Rotate without a cliff
A secret that signs live tokens cannot be swapped instantly. Keep a current key for signing and a previous key for verifying during a window, then drop the previous once no old token can still be presented.
Window beats lifetime
The accept-old window must be longer than the longest-lived token or signature you issue. Set it from that lifetime, not a guess, so you never reject a still-valid old token and never accept a burned one forever.