I'm a bit confused. The purpose of -EnableExit is to set an exit code from PowerShell.exe, not to create a return value from Invoke-Pester. The syntax you're using ($FailedTestTally = Invoke-Pester -EnableExit) should never work, whether psake is involved or not. This is for CI solutions that base their decisions on the return code of a process.
There are two other options for getting non-console feedback from Pester. For solutions that can make use of NUnit XML files, there's the -OutputXml parameter. However, if you're using psake, you may find that -PassThru is the most convenient option. When you set the -PassThru switch, you do get a return value from Invoke-Pester. It's a custom object which contains all of the same information you could get from the NUnit XML file, including the number of failed tests:
$result = Invoke-Pester
$FailedTestTally = $result.FailedCount