That table should persist through any kind of restart that any other non-temp entity would. Only the contents are ever at risk.
Unlogged only affects the rows in the table, resulting from DML on it. The DDL that actually spawned the table itself, hits the system catalogs, which are by all means backed by WAL. So to somehow lose the whole table you'd have to lose a bunch of entries scattered in those catalogs. It's extremely unlikely for a crash to randomly lose, with surgical precision, the exact set of entries that create table did, or a drop would otherwise have to undo.
The distinction between whether its the table itself or its contents that are (potentially) non-persistent, is somewhat underlined in the doc, through very specific wording (bold+italic mine):
Data written to unlogged tables is not written to the write-ahead log
an unlogged table is automatically truncated after a crash or unclean shutdown.
The contents of an unlogged table are also not replicated to standby servers.
It's also not like crashes take a shotgun to your disk; you typically just lose whatever wasn't finished and flushed. File system corruption is a whole separate, albeit sometimes related thing - that's what could damage some of your data beyond recovery, but again, it's unlikely to be this clean and limited to just the unlogged tables.
The only way I see you could've lost the entire table is if you created and started using it within one long transaction you never committed, or if the whole file system went back to a state from before the whole thing (some common docker misconfigs can do that). Or, something simply dropped it by accident, directly or through a cascade.
For the sort of application you described, you might also be interested in Oracle-style Global Temporary Tables emulated with Postgres unlogged tables in pgtt extension. Main difference is that all sessions see the table, but each session only sees and is able to interact with its own rows in it, and it gets intentionally wiped similar to how regular temps are.
pg_ctl, the unlogged table retains its data. I tried simulating a crash bykill -9the PostgreSQL processes, and the unlogged table is still intact (data and metadata). Maybe I am not killing the right process. Anyway, I'm not testing any further.