Freeze is a fairly exceptional time unless something goes wrong; most of the the time it’s:
Stable if you’re running a server, something boring and important where security is paramount and it’s okay for the software to be kind of old
Testing for daily use (personal machines etc)
Unstable / sid is also fine for daily use most of the time, although once in a blue moon something important might break. It mostly behaves like testing; the only reason you would choose unstable is if you’re actively developing for Debian or else if it’s so important to you to have extremely up-to-date software that you can accept some brokenness.
I recommend testing for normal machines and stable for servers.
The hope for freeze is 6 months, yes… but not all of that is “hard freeze”. Some portion of that time just refers to freezing the toolchain and other essential internals, so in practice you’re usually looking at maybe like 3-4 months where your most up-to-date software is being limited to being no newer than 3-4 months old. Which is, in almost all situations… fine 🙂.
I see. In case of issues with new hardware, one can always pick Mesa/the Kernel from Experimental. That’s the beauty of APT, you can mix different branches.
The freeze cycle normally lasts 6-8 months. (Edit: It has multiple stages, some of which might not affect you at all.)
One thing to be aware of if you choose Testing or Unstable: They’re generally not covered by the Debian Security Team, so security fixes might not arrive as consistently as with Stable.
You could always just start with Stable and plan to migrate to Testing or Unstable if you ever have a need. Stable + Backports is a good middle ground for some people.