let start_scheduler() return the correct value depending on result.
currently, it will return 1 in line 80
echo "Service batch isn't running but stale lock file exists"
echo "Removing stale lock file at $LOCKFILE"
rm -f $LOCKFILE
start_scheduler
return 1

Regardless of the actual result.