Redirection of wp-login.php results in non working of Logout process

You might have to trigger wp_logout() yourself in that case:

if ( $pagenow == "wp-login.php" && $_SERVER['REQUEST_METHOD'] == 'GET' ) {
    if ( (isset($_GET['action'])) && ($_GET['action'] == 'logout') ) {
        wp_logout();
    }
    wp_redirect($new_login_page_url);
    exit;
}

That said, it sounds like a real pain to reinvent wp-login.php and handle the different form actions etc… a plugin such as Theme My Login might be more suitable for a more bug-free solution.