The short answer is that a workflow that is blocked for a long time doesn’t consume any resources besides space in the database.
The long answer is that workflows are cached by worker processes. While they are cached, they do use a thread when blocked. But they are kicked out of the cache and release the thread as soon as another workflow has a need.
So don’t fear having a very large number of blocked workflows.