That seems easily fixed:
function Base.iterate(::MyIterUnrolled, (i,j) = (1,1))
if iseven(i)
value = i
new_state = (i=i+1, j=1)
else
value = -j
new_state = j < i ? (i=i, j=j+1) : (i=i+1, j=1)
end
return value, new_state
end