I can probably get rid of the jerkiness of the turnaround by positioning based on total travel in the x direction rather than the x position itself.

To get rid of the synchronized movement, it should be just a matter of starting with a random x-travel when the entity is initialized.