В первом варианте убрал скобки, со скобками не работает:
handleCardClick = () => { this.setState({ done: !(this.state ?? this.state.done), }) }
Получилось так:
handleCardClick = () => { this.setState({ done: !this.state.done ?? this.state.done, }) }
Мне кажется самая понятная конструкция получилась.

Через опциональную цепочку пока не догоняю почему он работает. А в третьем варианте слишком сложная конструкция получается логическое И плюс тернарник. В моем же варианте получается возьми или это или другое , другое или это. Правильно вообще написал и понимаю эту конструкцию?)