When you killed the session Oracle needed to rollback the changes. Which I'm guessing would require a exclusive lock on the table. I have had that before, if you wait long enough then the old transaction will clear. You should think about scheduling the delete off hours. You can even schedule the delete with DBMS_JOB. If the delete caused disk sort then that would explain why it took so long.
Of course if you monitor the session with enterprise manager then you will know exactly what it is doing.