By outputting the key value pairs within the Director::urlParams() array I was able to discover the topic id was actually paired with the OtherID key rather than ID.
So by changing the following line:
$id = Convert::raw2sql(Director::urlParam('ID'));
$id = Convert::raw2sql(Director::urlParam('OtherID'));
it fixed the issue.
However, after submitting the Forum Admin Features form. It redirects the user to the following url:
When it should be redirecting to the following url:
Causing an 404 error which I was able to fix by changing the following line:
Although everything is working fine now. This may not be the most flexible solution. So I am still open to other suggestions.