Remove-Module "[p]sake" is the same as Remove-Module "psake" because the
pattern "[p]sake" matches just "psake" and nothing else. At the same time
Remove-Module does not emit errors when a pattern is resolved to nothing
(unlike in the case with a literal argument). As a result we eliminate the
redundant error silently added to $Error on every first loading of psake.
Proposed ($_ | Out-String) gets the error message with source information.
In contrast, the original ($_) gets messages without this useful info. Just a
name of a failed task is often not enough in order to locate the problem fast,
for example in a typical case when an error happens in a script called from a
task. Existing verbose error mode is too verbose in many cases when error file
names and line numbers in messages would be enough.