I am naive enough to assume that features merged into master would make it from canary to experimental within 2-3 canary releases, and similarly from experimental to beta in 2-4 experimental releases
I would basically base an experimental release on a 3-4 week old canary and then manually cherry-pick any bug fix pull requests merged into master. Then add any minor/major features that have been in a couple of canary releases - more or less judgement calls.
I agree it’s impossible to manage an unending number of pull requests with different “stability”. I think the solution is to agree on a “time scope” for each level. Once a change goes beyond that scope it’s stable enough for the next release. Unless it’s explicitly noted as a showstopper I think it’s fine to let bugs slip through to beta, that’s what the stable milestones are for.