Strange that the sync errors were detected in a similar zone and they are all sequential, this makes not suspect RAM:
1st check
Apr 20 03:28:08 Tower kernel: md: recovery thread: P corrected, sector=4015656792
Apr 20 03:28:08 Tower kernel: md: recovery thread: P corrected, sector=4015656800
Apr 20 03:28:08 Tower kernel: md: recovery thread: P corrected, sector=4015656808
Apr 20 03:28:08 Tower kernel: md: recovery thread: P corrected, sector=4015656816
Apr 20 03:28:08 Tower kernel: md: recovery thread: P corrected, sector=4015656824
etc
2nd check
Apr 25 06:07:49 Tower kernel: md: recovery thread: P incorrect, sector=4015657608
Apr 25 06:07:49 Tower kernel: md: recovery thread: P incorrect, sector=4015657616
Apr 25 06:07:49 Tower kernel: md: recovery thread: P incorrect, sector=4015657624
Apr 25 06:07:49 Tower kernel: md: recovery thread: P incorrect, sector=4015657632
Apr 25 06:07:49 Tower kernel: md: recovery thread: P incorrect, sector=4015657640
etc
Since you rebooted run a correcting check then a non correcting one and post new diags, if it's a disk issue it's much more difficult to identify the culprit.