1) Instead of:
This will run the process in the background and give you terminal control back. I think you can then type "fg" to get the process back to foreground. (be aware that I don't use these extensively - this is from memory of what I've read and is thus subject to massive syntax error.
Try a google for bash basics)
2) Sounds like your kernel thinks it knows more than you do.
What you did with modprobe -r b44 was fine, but it didn't uninstall the module - just removed it from the running kernel. At next boot (or if you did modprobe b44) it's inserted back in.
To completely remove it from the system, you need to recompile the kernel and leave that module out of your config.
To have it not loaded at startup would require some magic with modprobe.conf that I can't help you with.
Wait, that may not be entirely true... try looking at your modprobe.conf (or modules.conf if you're in 2.4.x) and look for something like:
alias <blahblahblah> b44
BACKUP YOUR ORIGINAL FILE, and replace that line with:
alias <blahblahblah> bcm4401
(that's a guess, but makes sense to me)
3) and 4) both have to do with startup scripts and are distribution-specific. I'm a horrible person to give you advice, being from Debian, which is slightly "special" in areas like startup scripts.
Browse the Slack documentation to figure out how startup scripts work - there's a definate order to them, and rc.local is probably last. putting the iptables in an earlier script will bring it up sooner.
The ssh server is likely to have its own script. You can remove it from a runlevel by removing that script. I know in redhat, you can just type "config" and select or deselect services - perhaps Slack has a similar tool.
5) Generally, that would work, but I don't know enough about firefox to say if it's a good idea or not. The program might assume it's being run from a certain location when it's called. a symlink in /bin that points to the /home firefox might work better, but then it would appear in everyone's path but only work for that user.