deviceLogType_deviceID (hash key)
timestamp (sort key)
deviceID (I would keep this separate for future query possibilities)
deviceLogType (I would keep this separate for future query possibilities)
other misc attributes
Using this schema, you can use your current query and will open future possibilities for querying only by deviceId or deviceLogType (only add an index).
Composite key is indeed a good practice (best to have a separator which will not appear in both values), but not sure about which inheritance you mean.
But for example if we have AndroidDeviceLogType > DeviceLogType, best practise would be to store that value in deviceLogType in a serialised form (JSON in Base64 for example, or just plain JSON...).