Best we can do with cpal and alsa being overly open on what it accepts vs wasapi which can reject stream configs is:
TODO:
first 2 points of the todo list done in https://git.sr.ht/~taiite/poyo/commit/5eec78565b2ac6474617b14f8bcaead6fc6e77cf
third is left for another time. idk if buffer re-negotiation is a thing