If you have to have redundancy, I would mirror the 2TB and the 1.5TB drive, and forget about the 640GB one. This will give you about 1.5TB to begin with. When you go to upgrade, replace the 1.5TB with a 2TB first, and you'll be up to a 2TB pool. At this point you can mirror the 640GB and the 1.5TB to add 640GB to your pool, and data will stripe across the 2TB mirror and the 640GB mirror. Then you can one at a time replace the drives in the smaller mirror to expand the available storage. Rinse, repeat.
With raidz configurations you would need to be adding at least 3 drives at a time, versus mirrors which only require 2 drives to create a vdev. Pools stripe across vdevs, and vdevs can be added at any time to expand the pool. But raidz vdevs cannot be expanded by adding more drives. You would have to follow a complicated procedure to add drives to a raidz vdev, and it involves copying all the data from the existing vdev to a new one, which is not fun. You sacrifice more drive space using mirrors, but it is much more painless to expand.
Once you run out of slots in your chassis, then it may be possible to switch over to a single raidz2, depending on the number of drives you have in use. For example, if you have 4 drives in 2 mirrors, then get the last 2 drives you can fit in the chassis, then you could split the mirrors, make a 6 drive raidz2 vdev in a new pool using the 2 new drives, 2 drives split from the mirrors, and 2 temporary file backed devs. Then you delete the 2 files. The pool stays online because raidz2 can tolerate 2 drive failures. Then you send the old pool to the new pool, destroy the old pool, and replace the 2 file backed devices with the 2 drives from the old pool when the transfer is complete. Optionally you can then rename the new pool to have the name the old pool had. For simplicity this example assumes all the drives are the same size.
On the other hand, if you had 6 drives in 3 mirrors and got 2 more to fill the chassis, you couldn't pull that off. You'd have 3 drives still in use after splitting the mirrors, but you can only have 2 placeholder files for the redundant drives in raidz2, so you'd be short one drive. You could use raidz3, or you could just have a leftover drive doing nothing in this scenario.
So again, I recommend striping across mirrors, because of how complicated you can see it is to expand raidz vdevs. You run a higher risk of losing the pool if both drives in a mirror fail, so it's ultimately a tradeoff you have to decide for yourself. But as far as ease of expansion goes, striping across mirrors is the way to go.