>Vagueness isn’t a problem about logic; it’s a problem about knowledge.
I think it's more to do with context. The transition from 'a grain' to 'a pile' to 'a heap' where those terms are actually useful is normally clear in the context of whatever problem we're trying to solve.
The confusion arises from the fact that 'a grain' is considered to be well-defined without context and that language refers to it directly. Thus we lament that we can't adequately define 'heap'. Whereas in fact all language is metaphorical and indirect, and definitions can't rescue us from this. So even the label 'a grain' is fuzzy if you look deeply and scientifically enough.