As promised, the modified SQL query was:

WITH 
Test_Availability_Dates As 
  (SELECT audit_date, record_key0          
   FROM audit_values        
   WHERE table_name = 'TEST' And field_name = 'STATUS' And (value_before Is NULL Or value_before = 'U') And value_after = 'V'),

Test_Completion_Dates As   
  (SELECT audit_date, record_key0 
   FROM audit_values
   WHERE table_name = 'TEST' And field_name = 'STATUS' And value_before IN ('V', 'P') And value_after = 'C')
   
SELECT s.id_numeric, s.sample_name, s.login_date, s.dateresreq, t.analysis, t.test_number,
s.dateresreq-s.login_date As DeadlineTerm,

NVL2((SELECT audit_date FROM Test_Availability_Dates WHERE record_key0 = t.test_number),
    (SELECT audit_date FROM Test_Availability_Dates WHERE record_key0 = t.test_number), 
     s.date_started)                                                           As Date_Test_Available,

(SELECT audit_date FROM Test_Completion_Dates WHERE record_key0 = t.test_number)              As Date_Test_Completed,

(SELECT audit_date  FROM Test_Completion_Dates WHERE record_key0 = t.test_number) -
NVL2((SELECT audit_date FROM Test_Availability_Dates WHERE record_key0 = t.test_number),
     (SELECT audit_date FROM Test_Availability_Dates WHERE record_key0 = t.test_number),
     s.date_started)                                      As WaitTime,
    
FROM sample s
JOIN test t
  ON s.id_numeric = t.sample
JOIN versioned_analysis va
  ON t.analysis = va.identity
WHERE t.status <> 'X' And 
        va.group_id = :parameter1 And
        (SELECT audit_date FROM Test_Completion_Dates WHERE record_key0 = t.test_number)
          BETWEEN to_date(:parameter2, 'DD-MON-YY') AND to_date(:parameter3, 'DD-MON-YY')+1
And, actually, the execution time improvement was about 95%.