DB2 Commands -- Different ways of stopping database
Ok, this is really simplified, but hopefully helpful.

DEACTIVATE is the opposite of ACTIVATE. ACTIVATE loads some of the database processes into memory to save time and performance on connections. Otherwise the first connection is where the database does this work. DEACTIVATE takes the processes out of memory. It only "completes" once everyone is logged out. You only have to DEACTIVATE if you ACTIVATE.

TERMINATE shuts down any current connections and any processes run by the command line processor (CLP). It does not necessarily "unload" processes from memory like DEACTIVATE does.

QUIESCE puts the database (or instance) into a "restricted mode" so only IDs with QUIESCE_CONNECT privilege can connect. This is useful for running certain upgrades, etc, when you need the database up, but do not want users on the system. UNQUIESCE takes the database (or instance) out of this mode.

db2stop actually stops the instance. This would be the equivalent of hitting the "off" button, so to speak. db2stop force is a stronger "off" that forces users off the system.

EDIT: As a side note, when you run db2start, if you run it as db2start admin mode, it starts the instance in a state of QUIESCE.