Logged-out users don't always want to get a survey every day, either, so cancelling the question (see T184760) should suppress surveys for a long while.
@TJones suggested using "a multi-month cookie for non-logged in users. The cookie may prevent people on a shared machine from seeing the survey, but that seems acceptable. Rather than making it binary, we could instead set "time-of-next-survey", which would keep any survey taker from seeing another one for a day/week/whatever, and for those opt-out, logged in users get "never" and non-logged in users get a date 3 months in the future, or something similar."