@jeffh is correct. Snort can only block when block offenders is enabled. This is because the custom plugin that does blocking simply uses every alert to generate a block. So any alert that is fired will result in a block of the offending host or hosts when "block offenders" is enabled. Which host is blocked (source, destination or both) is configurable in the GUI. Of course alerts that are suppressed, or rules that are disabled, will not generate corresponding blocks. Right now the plumbing used internally in Snort does not lend itself well to inline IPS mode on pfSense. That may change in the future.
Suricata leverages the somewhat new Netmap functionality introduced in FreeBSD (in version 9 I think, but I'm not sure off the top of my head) to provide a true inline IPS mode that honors "alert", "drop", "reject" or "pass" as rule actions. Netmap allows very high speed pipes to be established between the NIC driver and user-land software (in this case, Suricata). However (and it's a big "however"), Netmap is only fully supported by a tiny handful of NIC drivers on FreeBSD. Some drivers sort of support it but are still quite buggy. Also, in pfSense, Netmap is currently incompatible with the traffic shaper and VLANs. So if you have a traffic shaper enabled or use VLANs, then Netmap will kill connectivity on any interface it is enabled on. This in turn means Suricata can't work with inline mode on such an interface.
Bill