add a custom field purely to track the import by adding a 1,2,3 etc column in your import
sometimes screens can time out but the import runs regardless, so having the above helps confirm if it really has stopped or not
hunt down some tickets about tweaking server so it runs for longer
Look at MySQL and find the temporary table. It will be names something like "civicrm_tmp_d_dflt_..."
Search status=NEW and that will tell you the number of rows left to import. Once the table has no NEW rows to import it is done and the table will be removed. If it did not succeed the table will still exist. I find this the best way to monitor the ...