It turns out elementVecViewSTDOUT() was not subject to a bug in PetscSynchronizedPrintf(), but rather that I do not understand how VecGetArray() works when used for blocked Vecs.  Of course there is no man page, and perhaps no implementation for, VecGetValuesBlocked().  This version with VecGetValues() seems to work.