Bitcoin testnet: "Bitcoin is downloading blocks..." and other problem
For your first question, the message "Bitcoin is downloading blocks" is produced if the client hasn't yet downloaded all the checkpoint blocks.  For testnet, there is exactly one checkpoint block, at height 546.  So until your client has mined 546 blocks, you will continue to get this message.  

Unfortunately, when you do mine block number 546, it will be rejected since its hash won't match the hardcoded checkpoint, and you will still get this message anyway.  So you will have to remove the checkpoint from the code and replace it with a zero-height checkpoint matching your genesis block.