dispose method
Dispose resources (for testing only - don't call in production)
Implementation
@visibleForTesting
void dispose() {
if (_isDisposed) return;
_isDisposed = true;
_isPaused = true;
_debounceTimer?.cancel();
_debounceTimer = null;
_heartbeatTimer?.cancel();
_heartbeatTimer = null;
_subscription?.cancel();
_subscription = null;
WidgetsBinding.instance.removeObserver(this);
// Don't close controller - it breaks active listeners
// Only close in tests
_isInitialized = false;
debugPrint('🛑 ConnectivityManager disposed');
}