WiFi is incredibly hit or miss. Though you have your iPhone in "the same location" you actually just mean it's near the same location, right?
Probably if you put that little WiFi dongle on a USB extension cable and wave it around in the air like trying to find decent antenna reception for a 1980s TV you could get better speed. The reason is the structure of your house -- unless you have clear line of sight to the router, but in that case you'd have Ethernet. Various tiles and bits of wood or nail are getting in between the source and destination and warping the strength, sort of like how gravitational fields affect the trajectory of light -- which is exactly what WiFi is, light with f=2.4GHz or f=5.0GHz.
Also that WiFi dongle has two issues:
1) It's tiny, so you have almost no antenna. Most laptops use a coil around the monitor so it's a rather large antenna.
2) It's USB, so you have some overhead there. Most laptops use Mini-PCIe. Granted USB 2.0 can do 480Mbps, so connecting at 150-300Mbps should be plenty to let you get whatever it is your ISP provides you (you don't say, but apparently it's more than 40Mbps down). However some overhead from WiFi will always be present, so if you have, say, a 150Mbps connection and are getting a connection to your router at 150Mbps I'd not expect to see more than 100Mbps. Less on a 2.4GHz channel. And less if you have nearby WiFi stations also interfering with yours.
If possible I'd suggest the following in order:
1) Use Ethernet
2) Use an extension cable for USB and find a better place to put the dongle
3) Use a PCIe WiFi card with external antenna and find a better place to put the receiver
4) Switch to the 5.0GHz band
5) Switch to 802.11ac
6) Switch to powerline using devices with 1Gbps ports that can offer 500Mbps+ bandwidth.
Also dealing with your ISP on this issue is very much the wrong way to go about this. This is an issue with your end of the connection, not theirs, almost certainly. They'll ask you to plug the computer directly into the router and odds are you'll get everything you paid for and more.
I have 155Mbps service and they gave me a router which would only connect via Ethernet at 100Mbps despite it having 1Gbps ports, my PC having a 1Gbps port, and the cable I was using I've always used to connect to my previous router and gigabit switch at 1Gbps. They could not understand why connecting at 100Mbps means I was only able to get 90Mbps and I kept explaining that I'm not connected at 1Gbps. They said they don't offer 1Gbps. Somehow they couldn't understand the idea of a bottleneck, that pushing 155Mbps over a 100Mbps connection is not possible. Turns out in bridged mode the router they gave connects just fine most of the time to my previous router, so it sees an external IP and handles that WAN port at 1Gbps. Like I suggested, you may get more than you pay for and I actually get up to 200Mbps though I can sustain about 170Mbps.