What's the best way to add an entity (of a specific type) selector to a form?
If you're operating on an entity, you can just use an Entityreference field which will do it for you.

If not, then yes, write it yourself and use EntityFieldQuery. Just watch out, entityCondition('bundle') is broken for comments and taxonomy terms, and entity access is non-existent (so it will show all users instead of the non-blocked ones, etc).
Entityreference implements workarounds for this (until it gets fixed in core), so you can take a look and borrow that code if needed.