The reason you're getting a "green" exposure is that the AWB (auto-white balance) algorithm hasn't seen enough frames to calculate a "good" white balance. Have a look at the capturing in low light recipe in the docs, which also uses a long exposure time. Note that there's a 30 second delay in the code before the capture line:
from picamera import PiCamera
from time import sleep
from fractions import Fraction
# Force sensor mode 3 (the long exposure mode), set
# the framerate to 1/6fps, the shutter speed to 6s,
# and ISO to 800 (for maximum gain)
camera = PiCamera(
camera.shutter_speed = 6000000
camera.iso = 800
# Give the camera a good long time to set gains and
# measure AWB (you may wish to use fixed AWB instead)
camera.exposure_mode = 'off'
# Finally, capture an image with a 6s exposure. Due
# to mode switching on the still port, this will take
# longer than 6 seconds
This is intentional as it allows the AWB loop (which runs in the camera firmware in the background) several frames with which to calculate the white balance. If you skip this you need to be prepared to specify the white balance manually or you'll just wind up with green (because the red and blue gains are zero).
The capturing consistent images recipe has more information on calculating and specify the white balance manually. I'd also recommend having a read of the camera hardware chapter for a better overview of all the stuff that happens in the background with the camera firmware.