I figured it out! Here was my process: Since I could create the Action/Threshold via the GUI but not via PowerShell, I had the bright idea to use PS to compare the working Action I created via the GUI vs. the failed Action I created via PS. When I did that, I noticed the following differences:
KillTimeOut, SecurityLevel, and RunLimitInterval. It turns out the PS defaults for SecurityLevel and KillTimeout don't work. So you need to add " -SecurityLevel LocalService -KillTimeout 0" or similar to the New-FsrmAction to get it to work.
Here's the good Action:
Body :
Command : c:\windows\system32\windowspowershell\v1.0\powershell.exe
CommandParameters : .\Send-FSRMEmail.ps1 -QuotaSystemPath '[Quota System Path]' -SourceFileRemotePaths '[Source File Remote
Paths]'
EventType : None
KillTimeOut : 0
MailBCC :
MailCC :
MailTo :
ReportTypes :
RunLimitInterval : 60
SecurityLevel : LocalService
ShouldLogError : True
Subject :
Type : Command
WorkingDirectory : D:\Scripts
PSComputerName :