It has to be the day count. Look at the equations:
premium value (at time=60):
3000 * (1+(4.5% + 1%)*(60/360)) = 3027.5
principal + interest (at time=270):
1000000*(1+(4%+1%)*180/360) = 1,025,000
option payoff (at time=270, see footnote):
1000000*(4.3%-4%)*(180/360) = 1500
return = (1,025,000 + 1500) / (1,000,000 + 3027.5) = 1.023402
to this point we have assumed a 360 day year
EAR = [1.023402 ^ (365/180) ] - 1 = 4.802413%
Notice we switched to 365 to get the effective annual rate
BEY = [((1 + EAR)^0.5) - 1] * 2 = 4.7461%
So this BEY here has the assumption of a 365 day compounding in it as it uses the anser from above to get back to BEY (discounts 365 ear back to half year and multply by 2).
If instead you took:
return = (1,025,000 + 1500) / (1,000,000 + 3027.5) = 1.023402
which has only used 360 days to this point and subtracted 1 and multplied by 2 you would get my answer.
I am not sure which is right!