The half-step of Fibonacci
Python 2, 226 bytes

g=input()+2
f=lambda n,x=1,y=1:n and f(n-1,y,x+y)or x
k={1:1,2:2,3:3}
s=set(k)
x=4
y=6
while g/x:
&#9;while g/x|g/y:k[y]=f(x);k[x]=y;s|={x};x,y=y,f(x)
&#9;x,y=sorted(set(range(1,max(s)+3))-s)[:2];s|={y}
print map(k.get,range(1,g-1))

Try it online!
-33 bytes thanks to ovs