Canceling this question. Turns out this was a strange side effect of a little hack that I did years ago to get Efcore to play nicely with snowflake. In order to get it to work I needed to re-set the connection string, which caused a bad state where the snowflake code maxed out on the original connection string's pool but when it went looking for idle connections couldn't find any because the string had changed.