Using PBKDF1 or PBKDF2 to generate a key from a password supplied by a user is no longer considered best practice, because adversaries with GPUs, FPGAs or (conjecturally) ASICs are able to evaluate the function (and thus test passwords from dictionaries) so much faster than legitimate users. PBKDF2 is fine for high-entropy passwords, only. For password supplied by a user, you want the extra protection of a memory hard function, e.g. Argon2.
Option 2 is perfectly fine and most standard practice IMHO: we can use the salt of the KDF as IV, or vice versa. The requirement is the same: unpredictable (and large enough that it won't repeat).
Option 1 is also fine as long as the output of the KDF is split into a key and an IV: if does not harm to make IV secret, rather than public as in 2 and standard practice.
Option 3 is fine if somewhat the password is stored.
In all cases, we need one independently chosen IV per encryption (e.g. per file). That's a must if the key is the same for multiple encryptions, and recommendable even if not (IV reuse may allow multi-target attacks).
AES-CBC
$\endgroup$