The issue was noticed with the DDCs on 1912 CU5 and the VDAs still on 1912 CU2. I upgraded a VDA vDisk to CU5 by uninstalling and then running the VDA cleanup utility, and the issue persisted. As soon as I rolled back the DDCs to CU2 all VDAs (even the ones on CU5) reboot properly.
For some reason, after the first half of a DG restarts the DDCs never see that (even though the VDAs register) so it never moves on to the second half of the DG and eventually times out. I plan to try 1912 CU4 on the DDCs to see how it behaves. Can't try 2203 yet due to SQL limitations.