Try these commands if you haven't already,
stsadm -o provisionservice -action start -servicetype spwebservice
Source
Or using PowerShell,
$server = "win-lhg69g3kdb2"
$service = Get-SPServiceInstance -Server $server | where-object {$_.TypeName -eq "Microsoft SharePoint Foundation Web Application"}
$service | Stop-SPServiceInstance -confirm:$false > $null
while(-not ($service.Status -eq "Disabled")){
write-host -ForegroundColor Yellow $service.Status; sleep 5;
$service = Get-SPServiceInstance -Server $server | where-object {$_.TypeName -eq "Microsoft SharePoint Foundation Web Application"}
}
Get-SPServiceInstance -Server $server | where-object {$_.TypeName -eq "Microsoft SharePoint Foundation Web Application"} | Start-SPServiceInstance -confirm:$false > $null
Source
Or try,
stsadm -o execadmsvcjobs
This Scenario might help too.
If nothing of above works then use ULS Viewer to identify the main cause of problem.