Check sql server log, it shows percentage completed of db recovery that gives you idea how long recovery may take. Cause of long recovery period is that there's big uncommitted transaction running while restart sql, sql has to rollback that transaction
before putting db online.