before system reboot it would claim sdb1 was spare and sdd1 was faulty
after that only two drives existed in the array sda1 and sdc1 neither sb1 or sdd1 were shown to be part of the array
Now I'm confused, because your dmesg says that sdb1, sdd1 are ok and sda1 and sdc1 are the problems.
md: kicking non-fresh sdc1 from array!
md: kicking non-fresh sda1 from array!
raid5: device sdb1 operational as raid disk 1
raid5: device sdd1 operational as raid disk 3
raid5: not enough operational devices for md0 (2/4 failed)
RAID5 conf printout:
--- rd:4 wd:2 fd:2
disk 1, o:1, dev:sdb1
disk 3, o:1, dev:sdd1
Did you try adding sda1 and sdc1 back in after fdisking partitions on them with mdadm -add ?