wp_redirect hangs, but returns true

wp_redirect() does not exit automatically and should almost always be followed by exit.

Have you tried adding an exit after wp_redirect? It could be as simple as that

tech