Find the size of an object in camera frame for bounding box creation
Ok, I think I found my mistake. The output from world_to_camera[2] is the actual planar distance that should be used for the calculation. However, instead of using the focal length of the camera to calculate the pixel pitch, the camera sensor width should be used instead such that:
sensor_width = camera.data.sensor_width/1000
pixel_pitch_x = sensor_width/x_resolution # [m]

The output for my previous configuration is now 1.006 pixels, which also explains why the rendered image fills 3 pixels. The way I see it, the resolution of the camera is not fine enough and therefore it interpolates the 0.006/2 pixels in each direction by filing them with a lower pixel intensity value.
The link to the reference that got me to use the sensor width instead of the focal length:
http://www.robsphotography.co.nz/crop-factor-advantage-appendix-2.html