Is there a way to query for multiple records and get them all as a single map?

Or in other words, get a Map<"Record Key",Map<"Bin Name","Bin Value">>

You can use the batch get() client method which stores the record results in a list.

    public final void get(BatchPolicy policy, List<BatchRead> records)