When should I use collect an end date for a field, instead of using 2 separated date fields?
Why having two fields if one will be enough to serve the purpose?

Your question itself states that you need a "Start Date and End Date" so I think option 2 will be better, as it's simpler and could perfectly solve the problem you are facing. Also, the Date module is highly flexible, so displaying your dates in different formats will be easy enough.

On the other hand, only reason that comes to my mind for having 2 separate fields could be for re-usability, for example, if you wanted to reuse only one of your fields in another content type.