A principal diferença é que mil é um quantificador (um caso específico de modificador) e milhar é um substantivo.
Ambas podem ser usadas para representar quantidades exatas, arredondadas ou apenas aproximadas/estimadas (ex: "duas mil pessoas" ou "dois milhares de pessoas"). Mas certamente, como mencionado na pergunta, a tendência principal é para a utilização de mil para valores exatos e arredondados, deixando o uso de milhares para valores mais incertos. Na escrita de um número por extenso, recorre-se sempre à palavra mil ("dois mil e quinze").
Para além disso, tanto uma como a outra podem ser figuradas para refletir apenas grandes quantidades.
English (by citation)
The main difference is that mil is a quantifier (a specific kind of modifier) and milhar is a noun.
Both can be used to represent exact, rounded or simply approximate quantities, (e.g. "duas mil pessoas" or "dois milhares de pessoas"). But indeed, as mentioned in the question, mil is much more often used to represent exact and rounded quantities, whereas milhares may be used for less certain amounts. When writing a number in words, we always rely on the word mil ("dois mil e quinze").
Furthermore, either one can be used as a figure of speech, to represent large quantities.