I think Josh's suggestion of a lower res image first might be a good one.
25% should be much faster to upload and will probably still look fine initially, have a play with some test images you might even be able to go smaller than that... just tried an image from my phone and using photoshop looked at 25% and 10%, 25 was fine and 10 was just about passable.
Still if you look at the numbers when dealing with bitmapdata:
2988*5312 = 15872256 pixels
15872256*4 = 63489024 bytes (63 MB)
now lets take 25% size
(2988*0.25)*(5312*0.25) = 992016 pixels
992016*4 = 3968064 bytes (4 MB)
that is nearly 16 times less data to upload and will still look passable with gpu filtering I think.
So I would create a downsized copy of the image at 25% say and upload them both async and display as soon as they are ready, maybe submit the smaller one first but as soon as the bigger one is available then swap out to use that.
Do bear in mind how quickly uncompressed image data like that will eat your memory both on gpu and cpu so dont let it hand around if you don't need it.
Also benchmark all the steps:
Time to get image bitmapdata
Time to resize bitmap data
etc... might help you out.