Ensure extractHead always call us back

This is a very similar problem to the one that was fixed before.
In some cases, sf.destroy() just does not emit 'end' event.

Reading the nodejs docs, i realize `destroy` is not documented so its behavior is unpredictable.