This seems to be different behaviour between pg9.5 and pg10. Pg9.5 does not give a connection error once "pg_ctl --wait ..." finishes. So I've moved this to the pgsql-bugs list.
In PostreSql 10, the documentation for pg_ctl and the "--wait" option says "Startup is considered complete when the PID file indicates that the server is ready to accept connections."
When I do a point-in-time recovery followed by a start with "/usr/pgsql-10/bin/pg_ctl start -D /data -w -t 86400", I then try to connect immediately after pg_ctl finishes. But I get a connection error "psql: FATAL: the database system is starting up" . It seems the postmaster.pid file state goes from 'starting' to 'standby' to 'ready' but pg_ctl is saying the server is ready to accept connections when the postmaster.pid file says 'standby'. Am I misunderstanding the documentation?