As I understand it, the midstate (1st SHA block) contains 64 bytes of the block header (which fields in particular I do not know, but I do know it doesn't contain the nonce), and the 2nd SHA block contains the rest, only 80-64 = 16 bytes. Does this mean the 2nd SHA block is padded with 64 - 16 = 48 bytes? If so, why not make the nonce field, for example, 48 - 4 = 42 bytes larger (i.e., 52 bytes instead of 4 bytes)?
Neither is a block and neither is padded. The midstate is hashed and contains 64 bytes of the header. These 64 bytes are things that will not change for the current block that is being mined. The remaining 16 bytes of the header is the stuff that will change such as the nonce. I don't know the specifics, but the midstate and the remaining 16 bytes are combined and hashed to produce the full 80 byte header. Once this is done, the header and the data is sent back to the pool or node to broadcast.