Swapped projectionZ and -1 in makeProjectionMatrix. Oops.
The elements of the projection matrix created in makeProjectionMatrix were swapped (specifically the -1 and projectionZ).