Just a follow up on this (I will either update the wiki or add my own page at some point)
Firstly, I'm using Debian Wheezy, using binary packages wherever possible.
Both init scripts are incorrect at this stage as they both return 3 if status it is unable to query freeswitch profile status. According the LSB an exit code of 3 is used to indicate that the service was stopped normally. The current version of pacemaker therefore does not fail over the resource.
However, fsctl crash properly crashes, leaving the PID file behind, where as stop does not. The LSB exit code for such an event is 2, which does make pacemaker fail the resource over. As such, I have added a few lines to check the existence of the PID file if the status check fails and return either 2 or 3 as required.