Run dhcpcd again whenever you attach to a new network. If you have an existing lease it should be confirmed quickly.
If you object to typing in "dhclient" or "dhcpcd" everytime, you could automate it with a shell script. It could look something like
#!/bin/sh
dhcpcd wlan0 &
wpa_supplicant -d -c/etc/wpa_supplicant.conf -iwlan0
dhcpcd will say it is "waiting for carrier" until wpa_supplicant brings up the wireless link.