Membership, emptiness, and finiteness are all "structural" questions about a CFG that can be answered by walking the grammar's productions in a bounded way, parsing a string bottom-up, or tracing which non-terminals can reach a terminal string or fall into a cycle, and each of these checks is guaranteed to finish.
Ambiguity is different in kind: it asks whether ANY string in the (possibly infinite) language has two different derivations, and there's no way to bound the search over all strings and all derivations for an arbitrary grammar. This has been formally shown to be unsolvable in general.
So the correct answer is deciding if a given context-free grammar is ambiguous.