The scheduled cloudflare:sync-registry and cloudflare:health-check tasks
silently died every run with 'no commands defined in the cloudflare
namespace': package commands don't reliably resolve in the Artisan kernel
when the scheduler process boots, so the php artisan call errored (output to
/dev/null) and the registry/health data hadn't refreshed in a week.
Extract the health-check run loop into DnsHealthChecker::runHealthCheck() so
the command and the scheduler share one code path, then switch all three
schedules to $schedule->call() closures that invoke the services directly
(ZoneRegistrySync/DnsRegistrySync for sync-registry, runHealthCheck for the
probes). No Artisan command lookup at schedule time. The commands still work
for manual runs.