1. Best Practice You need 1 Spare disk per aggregate in case of you need extra space for an emergency or a Disk die. you can add the spare disk to the aggregate and use it wile you fix the problem once added you can't remove it.
2. Yes, and about the space it you add a SAS 600 GB disk to a SAS 300 GB disks aggregate you will only be able to use the 300 GB of that Disk.
The number of aggregates is not limited by the controller model on 7-mode. There is a disk count limit that determines the maximum number of disks that you can connect to a controller. On the FAS2040 with Data ONTAP 8.1.1 7-mode, there is a 136 disk limit.
You can create a 12 disk SAS aggregate and a 12 disk SATA aggregate without issue on the same controller. With the FAS2040, you can mix SAS & SATA external disk shelves on the same disk stack provided that you only have 1 transition in the stack between the SAS shelves & the SATA shelves. The disks in your aggregate should be the same disk speed & disk type (i.e. an aggregate with all 10K SAS disks, an aggregate with all 15K SAS disks, an aggregate with all 7.2K SATA disks). You can mix disks of different sizes in the same aggregate provided that they are a) the same disk type (i.e. SAS or SATA) and b) the different disk sizes are in separate RAID groups. For example, I could mix 600GB SAS disks & 900GB SAS disks in the same aggregate, but I would want the 900GB disks to be in a separate RAID Group(s) from the 600GB disks. For ease of management, most customers work on the premise that the aggregates should contain disks of the same size.
As for disk spares, at a basic level, you need at least 1 spare disk of each disk type & disk size assigned to each controller. If you have, for example, 600GB SAS disks & 2TB SATA disks that are assigned to "ControllerA", then there needs to be at least 1 600GB SAS disk and 1 2TB SATA disk assigned to "ControllerA" as spares (spare disk is one that is not allocated to an aggregate).