Try reducing race conditions.

Remove initial unlink(), use clean status properly, reduce
exception capturing.
Never leave source file open.