What you probably want to do here is a pool of mirrors, which is conceptually somewhat like RAID10.
2x 400GB : there’s one 400GB mirror
1x 400GB + 1x 450GB : there’s another 400GB mirror
And perhaps use the 800GB as a SPARE vdev. This would leave you with a single pool with 800GB usable capacity after redundancy. Since this might not be obvious to you, you could also buy another 800GB drive, in which case you could set up a pool with three mirrors:
2x 400GB
1x 400GB + 1x 450GB
2x 800GB
for a total usable capacity of 1600GB.
What would you do? This is a homelab, and the craziest ideas are welcome
I don’t actually think this would be “crazy” at all, but personally, I’d set it up as a Sanoid server with standalone KVM virtualization, using virt-manager or Cockpit as the tool to manage the VMs. You get considerably more flexibility that way, as well as avoiding some storage performance issues that Proxmox’ preferred setup (which is very difficult to significantly change while still using Proxmox) tends to lead to.
Depending on the NVMe drives, you might be able to use those as CACHE and LOG vdevs (read accelerator, and sync-write accelerator, respectively) but I’d want to know more about what kind of NVMe drives you have. There’s a widespread naive belief that anything NVMe is faster than anything SATA/SAS, but that very, very much depends on both the individual drive on each side of the comparison, and on the workload to be served.