PJSIP Qualify fails where SIP Qualify works

The default UDP timeout for SonicWall is 30 seconds, way too short. Set this to 300 seconds; see
https://www.sonicwall.com/support/knowledge-base/how-can-i-increase-the-udp-timeout-value/170505468738370/
Also see

Set the registration expiry in the phones to 120, so registrations alone will keep the NAT association alive, even without qualify. Also, if for some reason the NAT association is lost, it will be reestablished in no more than two minutes.

If the SonicWall doesn’t have a public IP address on its WAN interface (the Comcast modem is configured as a gateway), put the modem in bridge mode.