Inserting query result to another table hangs on "Copying to temp table on disk" on MySQL
When I see that expression Copying to temp table on disk, I see a cascading problem.
First of all, what would precede Copying to temp table on disk? It would be Copying to temp table.
Why is this the case?
There are two variables that dictate how big a temp table in RAM can be

tmp_table_size
max_heap_table_size

Imagine processing a query where mysqld has tmp_table_size configured at 32M. If the query being processed needs more that 32M to populate a temp table, look at what mysqld must do to the query and the temp table:

Suspend the query's execution
Open a temp table on disk
Migrate the 32M data already in the temp table in RAM over to the new temp table on disk
Continue the query's execution from where it left off, populating the temp table on disk

That's when the message Copying to temp table on disk appears (during step 3). Based on this and the step given, my guess is that you have tmp_table_size set way too high. The bigger the temp table is that is not enough to finish any phase of the query, the longer step 3 must take in the interim.
SUGGESTION #1
I would set tmp_table_size and max_heap_table_size as low as possible. That would force a temp table to go to disk faster.
SUGGESTION #2
If you have the ability to setup a RAM disk in Windows, try mapping tmpdir to that RAM disk.
I once suggested these things in StackOverflow.