SAS DATE and DATETIME type variables are numeric, not character, and so you must use the numeric-version for properly GT/LT testing, instead of using character-format representations. Also, when you want to refer to a SAS date or datetime literal in single- or double-quotation marks, you just append the identifier "D" or "DT" to the literal string that is enclosed in the quotation.
Recommended reading from the SAS support http://support.sas.com/ website on the topic of using SAS DATE and DATETIME variables:
Review your SAS Log output closely, with your second DATA step; there should be a message ONE_DATE_END VARIABLE IS UNINITIALIZED.
Check your INPUT function to assign FINAL, and you will find that the INFORMAT being used is incorrect -- there should be a SAS diagnostic related.
So, for your own desk-checking diagnostics and validation consider using SAS FORMAT statements for variables like FINAL, to represent them as a DATE string. Then use PROC PRINT along the way (after the DATA steps), or use SAS PUTLOG commands in the DATA step to see what is being derived for your assignment statement.