This issue has been resolved.
The solution was much simpler than expected. It turns out that my iPhone's name contained Korean characters. It seems that when Dart VM tries to connect to the phone wirelessly, there's a problem handling non-ASCII strings.
In conclusion, all my settings were correct, and just removing Korean characters from the iPhone name solved the problem.