Do detached or unused volumes still cost money?

Edited

Yes. A block volume keeps billing for as long as it exists, whether or not it's attached to a running instance - and deleting an instance doesn't delete its volumes. To stop the charges, delete the volume itself once you no longer need it.