You would need to check the server logs to see why the transaction is rolling back. Typically this is caused by some kind of error when reindexing a particular resource, but there are all kinds of reasons that can happen. Try looking in the logs for the first instance of "Transaction silently rolled back", then work backwards from there - the error that caused it should be in the logs shortly before.
The reindex process should absolutely be deleting rows in the index tables related to Search Parameters that are no longer active. If you see a row in that table you expect should no longer be there after the reindex, you could try doing a single
$reindex-dryrun (link is to an example on the public hapi server) on it to see if the system believes it should actually be deleting index rows.
Also - if you are on an old version of HAPI, consider upgrading. Reindexing and batch jobs in general have had a lot of optimization and performance work over the last few releases.
Cheers,
James