Does a body rotating about a fixed axis have to be perfectly rigid for all points on the body to have the same angular velocity and the same angular acceleration
In general, yes. If different parts of the body have different angular velocities (or different angular accelerations, which will result in different angular velocities), then you have particles moving relative to one another. Assuming an object is a rigid body means that all particles are fixed in place relative to the body. If the body is not rigid, then this allows for relative motion, and hence different angular velocities.
Of course, you could always take a non-rigid body and move it in such a way as to make all parts of it have the same angular velocity or angular acceleration. But this is a contrived case.
It should not be necessary for a constant acceleration and, naturally, for a constant velocity, but it could make a difference if angular acceleration changes.
For a given acceleration, a certain stress (force) is required and with it comes a strain. As long as the acceleration is constant, the stress and, therefore, the strain at any given point remains the same, and therefore, all point of the body will maintain the same relative positions (won't move relative to each other), i.e., will have the same angular acceleration and velocity.
However, if the acceleration changes, the strain will be changing as well, in which case, the angular acceleration and velocity of all points will remain the same only if the strain will be proportional to the radius, which will be the case under ideal conditions, but may not be the case for specific materials.