I can answer the second question of yours ("Sanskrit vs. Modern Hindi", as described by you).
You mentioned that the primary goal is to learn an old language, with only three choices (perhaps restricted by course availability), and you want to choose the one which helps you with your secondary goal of learning modern Hindi.
So, I suggest you go ahead with Sanskrit. It will help in your learning of Hindi in the following ways:
Grammar: Sanskrit and Hindi are quite similar in existence and rules of features like sandhi (joining, means modification of adjacent sounds for ease of pronunciation, or space-saving), samaasa (compound words), prefixes, suffixes etc. These will help in reading and writing Hindi, especially if you learn Sanskrit in the Devanagiri script.
Vocabulary: Hindi has words derived from many languages, but most of them are from Sanskrit and Prakrit, a derivative of Sanskrit. I am unable to find a number, but I believe Sanskrit loanwords form the largest section of Hindi vocabulary.
However, an important part of learning Sanskrit is shabdroop (noun/adjective inflections with formative particles as suffixes) and dhaaturoop (verb inflections). Every shabd or root word is not used directly but modified as per ending sound (~15 types) of that root word, its gender (3), cases (8), singular/dual/plural(3). So, a whole lot of tables of shabdroop are to be learned (approximately 15×3×8×3 ≈ 1080 different suffixes!), and similarly for dhaturoop. This memorization of inflections is not at all necessary for learning Hindi noun forms (which is done by use of helping words that vary only by 8 cases and sometimes gender, used in a particular word-order). Thus, someone intending to primarily learn Hindi would rather learn it directly than going through the Sanskrit route.