Deploy folder to desired path - PowerShell function
The code is very cleanly written, and its easy to see what is going on.
The verb you are using for the command is not officially 'supported'. Every command should stick to the official list of verbs, that can be checked with get-verb.  would suggest New-Folder
I don't know why you go through this much code to create a folder when you could append a -force to the back end of the new-item command. I guess if you have a system that required you to log every instance where one would create a folder, this would make sense.
If you have a system where you do commands to an external module, i would suggest you look into the #require tag in powershell, instead of having import-module at the start of your command
you can easily cast to a psobject just by doing [PSCustomObject]@{cancel=$cancel}.
use [CmdletBinding()] at the start of your function to get powershell standard switches (-verbose, -debug, -erroraction etc..). just put it between the function definition line and the param definition line (line 2)