stop method
Implementation
Future<void> stop() async {
if (!_isRunning || _stopController == null || _stopController!.isClosed) return;
_stopController!.add(null);
await _backgroundCompleter?.future;
_stopController!.close();
_workTimer?.cancel();
_candidateFoundController.close();
_maybeConnectToRelayTriggerController.close();
_maybeRequestNewCandidatesController.close();
_relayUpdatedController.close();
_triggerRunScheduledWorkController.close();
_resetMetrics();
_isRunning = false;
}