Releases the source (idempotent).
@override Future<void> close() async { if (_closed) return; _closed = true; await _lock; await _raf.close(); }