Purchased the IOGear wireless N USB device and can confirm that the results (at least from a Ping test perspective) is much better and more stable than the built in wifi
Results, which is in line with the results Anorax1 posted previously
IOGear
PING 192.168.1.254 (192.168.1.254): 56 data bytes
64 bytes from 192.168.1.254: icmp_seq=0 ttl=64 time=1.338 ms
64 bytes from 192.168.1.254: icmp_seq=1 ttl=64 time=1.282 ms
64 bytes from 192.168.1.254: icmp_seq=2 ttl=64 time=1.553 ms
64 bytes from 192.168.1.254: icmp_seq=3 ttl=64 time=1.205 ms
64 bytes from 192.168.1.254: icmp_seq=4 ttl=64 time=1.801 ms
64 bytes from 192.168.1.254: icmp_seq=5 ttl=64 time=1.182 ms
64 bytes from 192.168.1.254: icmp_seq=6 ttl=64 time=1.532 ms
64 bytes from 192.168.1.254: icmp_seq=7 ttl=64 time=1.195 ms
64 bytes from 192.168.1.254: icmp_seq=8 ttl=64 time=2.860 ms
64 bytes from 192.168.1.254: icmp_seq=9 ttl=64 time=1.333 ms
64 bytes from 192.168.1.254: icmp_seq=10 ttl=64 time=1.194 ms
64 bytes from 192.168.1.254: icmp_seq=11 ttl=64 time=2.393 ms
64 bytes from 192.168.1.254: icmp_seq=12 ttl=64 time=1.383 ms
64 bytes from 192.168.1.254: icmp_seq=13 ttl=64 time=1.660 ms
64 bytes from 192.168.1.254: icmp_seq=14 ttl=64 time=1.683 ms
64 bytes from 192.168.1.254: icmp_seq=15 ttl=64 time=5.154 ms
64 bytes from 192.168.1.254: icmp_seq=16 ttl=64 time=1.475 ms
64 bytes from 192.168.1.254: icmp_seq=17 ttl=64 time=1.711 ms
64 bytes from 192.168.1.254: icmp_seq=18 ttl=64 time=1.481 ms
64 bytes from 192.168.1.254: icmp_seq=19 ttl=64 time=2.723 ms
Built in
PING 192.168.1.254 (192.168.1.254): 56 data bytes
64 bytes from 192.168.1.254: icmp_seq=0 ttl=64 time=1.227 ms
64 bytes from 192.168.1.254: icmp_seq=1 ttl=64 time=1.364 ms
64 bytes from 192.168.1.254: icmp_seq=2 ttl=64 time=27.872 ms
64 bytes from 192.168.1.254: icmp_seq=3 ttl=64 time=1.229 ms
64 bytes from 192.168.1.254: icmp_seq=4 ttl=64 time=4.781 ms
64 bytes from 192.168.1.254: icmp_seq=5 ttl=64 time=1.390 ms
64 bytes from 192.168.1.254: icmp_seq=6 ttl=64 time=17.070 ms
64 bytes from 192.168.1.254: icmp_seq=7 ttl=64 time=39.778 ms
64 bytes from 192.168.1.254: icmp_seq=8 ttl=64 time=67.669 ms
64 bytes from 192.168.1.254: icmp_seq=9 ttl=64 time=70.245 ms
64 bytes from 192.168.1.254: icmp_seq=10 ttl=64 time=5.908 ms
64 bytes from 192.168.1.254: icmp_seq=11 ttl=64 time=6.577 ms
64 bytes from 192.168.1.254: icmp_seq=12 ttl=64 time=51.708 ms
64 bytes from 192.168.1.254: icmp_seq=13 ttl=64 time=74.441 ms
64 bytes from 192.168.1.254: icmp_seq=14 ttl=64 time=102.199 ms
Request timeout for icmp_seq 15
Request timeout for icmp_seq 16
Request timeout for icmp_seq 17
64 bytes from 192.168.1.254: icmp_seq=15 ttl=64 time=3075.222 ms
64 bytes from 192.168.1.254: icmp_seq=16 ttl=64 time=2077.145 ms
64 bytes from 192.168.1.254: icmp_seq=17 ttl=64 time=1076.035 ms
64 bytes from 192.168.1.254: icmp_seq=19 ttl=64 time=15.653 ms
For the meantime until Apple fixes this issue, I'll have this device handy as a workaround. Purchased for around AUD 35, its acceptable