Your statements are ok in general. There are other processes having locks on the indices preventing the drop statements from finishing. You can see the active statements with
SELECT * FROM pg_stat_activity;
You should set log_statement appropriately if necessary.
Edit: pg_locks will give you information about specific locks:
SELECT a.datname,
c.relname,
l.transactionid,
l.mode,
l.GRANTED,
a.usename,
a.query,
a.query_start,
age(now(), a.query_start) AS "age",
a.pid
FROM pg_stat_activity a
JOIN pg_locks l ON l.pid = a.pid
JOIN pg_class c ON c.oid = l.relation
ORDER BY a.query_start;