http://cdn2.americancivilwar.com/americancivilwar-cdn/civil_war_map/army-peninsula-campaign-map.jpg
So until Gaines's Mill Porter and the other Union forces are in the way of 67,000 Confederates doing anything. Why is McClellan sitting there waiting?
He isn't. As I said both sides were waiting for the ground to dry enough to move. On the 25th McClellan begins his attack, with 3rd Corps pushing the Confederates back one tactical bound (i.e. one geographic feature, a ridgeline in this case). Before news of Jackson's arrival becomes certain 6th Corps is stood ready for an attack in their sector, which was suspended. 6th Corps is controlling the other bank of the Chickahominy and Slocum's division was pulled back to act as a reserve.
Per Tenney (rounding to the nearest hundred to stay consistent with the round figure of "45,000" you presented):
Magruder's "corps": 15,800
Huger's Division: 7,300
Richmond Defenses: 6,100 (including 800 men at Drewry's Bluff).
Total: less than 30,000 (29,200).
Where are you getting another sixteen thousand men from?
Tenny says:
Army of Northern Virginia
Longstreet: 14,291
A.P. Hill: 16,411
D.H. Hill: 12,318
Stuart: 2,109
Total: 45,129
Army of the Valley
Jackson: 9,604
Ewell: 6,353
Whiting: 5,537
Cavalry: 605
Total: 22,099
Confederate defensive forces south of the Chickahominy:
McLaws: 4,915
D.R. Jones: 4,503
Magruder: 5,671
Huger: 6,160
Holmes: 9,018
Reserve artillery: 1,680
Cavalry: 2,000
Richmond defenses: 9,136
Petersburg defenses: 1,909
Total: 44,992
Obviously 40,000 vs. 29,200 does not favor an assault, but it does not justify tying up 40,000 men hesitant to do anything that might possibly interfere with Lee's plans either. If they can't do anything to assault Magruder, I'm sure Porter would appreciate another ten thousand men.
Union Forces are:
Present North of the Chickahominy the morning of the 26th (figures PFDE from OR 11(3), 238 - splitting divisions pro rata as I don't have brigade strengths):
Morell: 12,0011
Sykes: 5,745
McCall: 9,501
Farnsworth's 8th Illinois Cavalry: 671
Cooke's Cavalry Division: 2,087
= 30,015
Sent from South of the Chickahominy on the 27th:
Slocum: 9,246
2 brigades of Richardson: (2/3rds of 8,145) = 5,457
2 brigades of Peck (Casey): (2/3rds of 5,248) = 3,516
Reinforcements sent by McClellan: ca. 18,219
Total committed to the fight north of the Chickahominy: 48,234
Remaining south of the Chickahominy:
Brigade of Richardson's Division: (8,145-5,457) = 2,688
Sedgwick's Division: 8,681
2nd Corps Arty: 355
Averill's Cavalry Regt: 751
3rd Corps Arty: 378
Hooker's Division: 8,976
Kearny's Division: 8,323
Gregg's Cavalry Regt: 643
Couch's Division: 8,314
Brigade of Peck's Division: (5,248-3,516) = 1,732
McReynold's Cavalry Regt: 841
Smith's Division: 9,308
Artillery Reserve: 2,108
Total south of the Chickahominy after sending reinforcements = 53,098
As to Porter, he kept fending off McClellan asking him if he needed reinforcements, and eventually McClellan sent them anyway.
And yet we still see Grant pressing and searching for those advantages in the Vicksburg campaign for the first six months right up to the end and we see Meade pressing and searching for advantages after Gettysburg even when his army is having men taken away (to deal with the New York Draft riots, to reinforce Gilmore down in South Carolina), to look at two relevant examples.
So with Grant and Meade we find reasons for lack of action, but we don't accord the same courtesy to McClellan?
McClellan's philosophy of war seems to be more along the lines of 'I do not favour pitched battles, especially at the beginning of a war, and I am convinced that a skillful general could make war all his life without being forced into one.', in a very different situation than that de Saxe commanded in, and without regard for whether that situation being different (both militarily and politically) meant it was an inappropriate philosophy.
He was not a "doctrinaire" general, no. He was a skillful one.
By far one of the best analysis of McClellan as a military commander is McCoun's MA thesis, which isn't in general circulation, but is often referenced and copies are floating around. Unfortunately my copy isn't OCR'd or I quote chunks.