turn speakonomy into singleton, loosely memoize get_freeplay_timeout