Better destroy handling. Ensure we always hide even if FALSE is returned in a hide callback, is we're currently destroying.