Sometimes the countours are too big to process all at once. Try something like this to make 10ft contours at different intervals, and then merge them all together.
gp.Contour_sa(grid, r"C:\temp\cont0.shp", "100", "0", "")
gp.Contour_sa(grid, r"C:\temp\cont10.shp", "100", "10", "")
gp.Contour_sa(grid, r"C:\temp\cont20.shp", "100", "20", "")
gp.Contour_sa(grid, r"C:\temp\cont30.shp", "100", "30", "")
gp.Contour_sa(grid, r"C:\temp\cont40.shp", "100", "40", "")
gp.Contour_sa(grid, r"C:\temp\cont50.shp", "100", "50", "")
gp.Contour_sa(grid, r"C:\temp\cont60.shp", "100", "60", "")
gp.Contour_sa(grid, r"C:\temp\cont70.shp", "100", "70", "")
gp.Contour_sa(grid, r"C:\temp\cont80.shp", "100", "80", "")
gp.Contour_sa(grid, r"C:\temp\cont90.shp", "100", "90", "")