It depends on whether or not there is any clustering in place.
With clustering, use the cluster-manager to start the resources (including db2).
With no clustering, on modern DB2 versions on Linux/Unix, I use db2fmc (when you use db2iauto, that just sets a registry variable, but the fmc will search for instances with this registry variable set and start them).
For Windows, without clustering, I ensure the relevant system-services are marked as auto-start.
I've seen enough problems with fault monitor so don't know if I can trust it 100%.
Do you see any potential issue with setting the instance to autostart in two places (FM/reg var and inittab)? This is just in case FM fails to autostart the instance. With inittab, I will activate the db in some env as well. FM first and then the manual script:
Only 1 copy of the instance can stay running on the box...if one copy is already running, the second copy must fail.
So if your alerting solution can cope with the false alarm (if fail to start the instance that is already started generates an alert) then ok...
The fm job is to restart the instance on failure, so if there's no clustering I want the fm to do its job both at system reboot and otherwise.