What, if any, are the dangers to modifying users directly in the database?
Manually modifying anything in the database inherently comes with risks.  The biggest is that you risk corrupting data by getting it in an inconsistent state across tables, which can cause foreign key constraint violation errors later on.

In the case of suspending/un-suspending a user, that risk is pretty low since it's limited to just the craft_users table, but in the case of changing user groups, it's higher because now you're talking about craft_users, craft_usergroups, craft_usergroups_users.

In both cases, you also need to take into account any plugins that might be using that data as well.