Do you have Techstream? Can you check the VVT initial learning positions? I know you said they replaced the ECU but was that after the P0021 and before the P0018? I had to replace the cam sprocket for a a similar code and was able to rest my ECU by swapping it into a buddy's BRZ. Maybe you can get away with the same?
https://www.ft86club.com/forums/show...&postcount=490